簡體   English   中英

“in”運算符不適用於python中的元組和集合

[英]'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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM