为什么列表和元组的“输入”行为不同?

时间:2019-04-17 21:06:36

标签: python python-3.x

代码

for item in ('sin', 'cos', 'sinc', 'sin^2'):
    print(item not in ('sin^2'))

产生结果

False
True
True
False

但是

for item in ('sin', 'cos', 'sinc', 'sin^2'):
    print(item not in ['sin^2'])

产生结果

True
True
True
False

为什么?

1 个答案:

答案 0 :(得分:1)

该表达式被视为带括号的字符串,而不是元组。因此,它最终是一个子字符串匹配项。要将其定义为单元素元组,必须有逗号结尾:

print(item not in ('sin^2',))

此处描述:https://wiki.python.org/moin/TupleSyntax