Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么python';在';根据元组大小,运算符的行为是否不同?_Python - Fatal编程技术网

为什么python';在';根据元组大小,运算符的行为是否不同?

为什么python';在';根据元组大小,运算符的行为是否不同?,python,Python,在python2中: >>> 'a' in ('ab') True >>> 'a' in ('ab', 'c') False 如果我只想测试给定的元组中是否存在特定的字符串,那么当元组大小为1时,看起来我无法使用'in'运算符?有没有一致的方法来做到这一点 更新: 谢谢大家。我试过这个: >>> tup='ab', >>> type(tup) <type 'tuple'> >>> 'a' in

在python2中:

>>> '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元组,等等。