为什么会出现这个:?
seq = [(1, 2), (3, 4), (5, 6)]
print(() in seq)
如何检查序列中是否存在元组或其他通用序列,但没有特定的值,就像这个答案中所述,如果返回False
该怎么办?
seq = [(1, 2), (3, 4), (5, 6)]
print(() in seq)
如何检查序列中是否存在元组或其他通用序列,但没有特定的值,就像这个答案中所述,如果返回False
该怎么办?
()
是一个空元组。 seq
不包含空元组。
你想要什么
>>> seq = [(1, 2), (3, 4), (5, 6)]
>>> any(isinstance(x, tuple) for x in seq)
True
对于一个通用序列,您可以使用
>>> from collections import abc
>>> any(isinstance(x, abc.Sequence) for x in seq)
True
然而,许多对象被非正式地视为序列,但既没有实现完整的协议 abc.Sequence
, 也没有注册为 Sequence
的虚拟子类。
有关更多信息,请阅读这个优秀答案。
您可以在此处找到有关检测序列的问题。
您要检查的是列表中是否存在空元组。
相反,您可以检查其类型。
def has_tuple(seq):
for i in seq:
if isinstance(i, tuple):
return True
return False