Python “为什么?”;在;列表和元组的行为是否不同?
代码Python “为什么?”;在;列表和元组的行为是否不同?,python,python-3.x,Python,Python 3.x,代码 对于('sin','cos','sinc','sin^2')中的项目: 打印(项目不在('sin^2')) 产生结果 False True True False True True True False 但是 对于('sin','cos','sinc','sin^2')中的项目: 打印(项目不在['sin^2']中) 产生结果 False True True False True True True False 为什么?表达式被视为带括号的字符串,而不是元组。所以它最终是一个子
对于('sin','cos','sinc','sin^2')中的项目:
打印(项目不在('sin^2'))
产生结果
False
True
True
False
True
True
True
False
但是
对于('sin','cos','sinc','sin^2')中的项目:
打印(项目不在['sin^2']中)
产生结果
False
True
True
False
True
True
True
False
为什么?表达式被视为带括号的字符串,而不是元组。所以它最终是一个子串匹配。要将其定义为单个元素元组,必须有一个尾随逗号:
print(item not in ('sin^2',))
这里描述了这一点:第一个元组中没有元组。您只有一个字符串。
('sin^2')
不是元组,而是字符串。逗号构成元组,而不是圆括号。注意,mytuple=1,2
是有效的元组,mytuple=3、
和mytuple=(3,)
,而mytuple=(3)
是int