为什么python';在';根据元组大小,运算符的行为是否不同?
在python2中:为什么python';在';根据元组大小,运算符的行为是否不同?,python,Python,在python2中: >>> 'a' in ('ab') True >>> 'a' in ('ab', 'c') False 如果我只想测试给定的元组中是否存在特定的字符串,那么当元组大小为1时,看起来我无法使用'in'运算符?有没有一致的方法来做到这一点 更新: 谢谢大家。我试过这个: >>> tup='ab', >>> type(tup) <type 'tuple'> >>> 'a' in
>>> 'a' in ('ab')
True
>>> 'a' in ('ab', 'c')
False
如果我只想测试给定的元组中是否存在特定的字符串,那么当元组大小为1时,看起来我无法使用'in'运算符?有没有一致的方法来做到这一点
更新:
谢谢大家。我试过这个:
>>> tup='ab',
>>> type(tup)
<type 'tuple'>
>>> 'a' in tup
False
>>tup='ab',
>>>类型(tup)
>>>tup中的“a”
假的
它还解释了逗号可以很好地构成元组。因为('ab')
实际上不是元组,而是字符串
,
实际上是定义元组的东西,而不是括号(除了@chepner指出的空元组()
)
在
('ab',)
上尝试相同的操作,看看会发生什么 顺便说一句,试试'a'in('ab','c')[0]
或['a'in i for i in('ab','c')]
。既然您已经在交互式解释器中这样做了,您可以简单地从这两个语句中删除'a',然后自己查看生成的输出。这是一个很酷的答案。括号似乎有误导性,因为“type(())”结果为元组类型。空元组是例外()
(无逗号)定义空元组(x,)
是一个单态,(x,y)
是一个2元组,(x,y,z)
是一个3元组,等等。