[英]'in' operator does not work with tuples and sets in python
如果我有兩個相同的元組:
>>> e = ('a', 1)
>>> c = ('a', 1)
>>> e == c
True
>>> hash(e)
9135824190991152417
>>> hash(c)
9135824190991152417
但令我驚訝的是:
>>> se = set(c)
>>> e in se
False
如何使用集合來檢查元組是否在其中?
如您所見, e
不是se
的元素,因此in
返回 false
se = {'a', 1}
e = ('a', 1)
由於set()
接受一個可迭代對象,並使用其值來填充其結構,因此您不能像這樣傳遞元組、使用{}
語法或給出包含元組的列表(或元組)
# {('a', 1)}
se = {c}
se = set((c,))
se = set([c])
在您的示例中se = {'a', 1}
不是{('a',1)}
,因此您得到錯誤。 要創建一組我認為您想要的元組,請使用set([c,])
或{c}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.