Python“无法分配给功能调用”

问题描述 投票:1回答:2

我很抱歉提出这个问题,因为之前曾多次问过这个问题,但是由于我是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)

`

python list syntax
2个回答
4
投票
正如错误所言,您不能分配给函数调用。如果出于某种原因,您不想简单地编写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)


1
投票
让我们接受声明:

i + = 1

这是]的简写>

i = i + 1

在这些语句中,i是变量。它的值递增1并重新分配给i。使用函数调用无法做到这一点。它不是变量。

© www.soinside.com 2019 - 2024. All rights reserved.