从列表中提取时出现“ TypeError:'str'对象不可调用”

时间:2019-04-14 09:45:28

标签: python python-3.x

我收到此TypeError

if 'Stack 6' in placement():
TypeError: 'str' object is not callable. 

在我的for-每个语句中将其转换为整数不起作用,并且我无法更改列表中的任何值。

我无法弄清楚为什么它返回TypeError

game = [['Stack 6', 'Suit D', 9, 6],
  ['Stack 4', 'Suit B', 5, 0]]

for instructions in game:
    for placement in instructions:
        if 'Stack 6' in placement():
            print(placement)

但是,这段相似的代码没有返回任何错误:

elements = [['he', 'ne', 'Ar', 'Kr'],
    ['F', 'Cl', 'Br', 'I']]

for family in elements:
    for symbol in family:
        if 'a' in symbol.lower():
            print(symbol)

1 个答案:

答案 0 :(得分:0)

placement不是函数。它是string。在对象后加上括号会告诉python调用该对象,而字符串不能这样做。删除括号以修复代码。

使用symbol.lower()的代码是有效的,因为lower()是可以调用以返回内容的函数。

Here's a handy link详细说明python中的可调用对象。