为什么python'in'运算符根据元组大小表现不同?

Kar*_*ata 2 python

在python2中:

>>> 'a' in ('ab')
True
>>> 'a' in ('ab', 'c')
False
Run Code Online (Sandbox Code Playgroud)

如果我只想测试给定元组中是否存在某些字符串,看起来当元组大小为1时我不能使用'in'运算符?有没有一致的方法来做到这一点?

更新:

感谢大家.试过这个:

>>> tup='ab',
>>> type(tup)
<type 'tuple'>
>>> 'a' in tup
False
Run Code Online (Sandbox Code Playgroud)

并且它解释了逗号使得元组很好.

pus*_*kin 9

因为('ab')它实际上不是一个元组而是一个字符串.

,是真的什么定义一个元组,而不是括号(除空的元组()作为@chepner指出).

尝试相同的操作('ab',),看看会发生什么!

  • 空元组是例外.`()`(无逗号)定义一个空元组; `(x,)`是单例,`(x,y)`是2元组,`(x,y,z)`是3元组等. (3认同)