我很抱歉提出这个问题,因为之前曾多次问过这个问题,但是由于我是python的绝对初学者,所以我不理解潜在的问题,因此无法将该概念应用于我自己的代码。在这几行中,我尝试做一个显示字符串中所有元音的函数。在第二个for循环中,我想从列表l中创建一个字符串,当我尝试从列表中选择特定项目时,它给了我错误“无法分配给函数调用”。如果有人能告诉我如何解决此问题并解释此语法错误的确切含义,我将非常感激。`
word = str(input())
vowels = ['a','e','i','o','u']
l = []
x = ''
for i in word:
if i in vowels:
if i not in l:
l.append(i)
for i in v:
l.__getitem__(i) += x #cannot assign to function call
' ' += x
print(x)
`
l[i] += x
,则也必须显式调用__iadd__
方法。for i in v:
l.__getitem__(i).__iadd__(x)
但是,由于' ' += x
也是非法的,我怀疑您只是在反转操作数。该代码应为
for i in v: x += l[i] x += ' '
但是整个循环被调用join
方法更正确(更有效):
x = ' '.join(l)
i + = 1
这是]的简写>
i = i + 1
在这些语句中,i是变量。它的值递增1并重新分配给i。使用函数调用无法做到这一点。它不是变量。