【发布时间】:2012-02-14 09:02:14
【问题描述】:
假设我有这一套:
a = set([(1,2),(3,4),(5,6)])
如何测试是否可以在该集合中找到“3”或“7”?
【问题讨论】:
假设我有这一套:
a = set([(1,2),(3,4),(5,6)])
如何测试是否可以在该集合中找到“3”或“7”?
【问题讨论】:
与any():
any(3 in t or 7 in t for t in a)
【讨论】:
any(3 in tup for tup in setOfTuples)
setOfTuples 显然是 a
a = set([(1,2),(3,4),(5,6)])
b = set((3,7))
any(b&set(p) for p in a)
# True
@RikPoggi 还建议使用isdisjoint,即使不创建集合也可以:
any(not b.isdisjoint(p) for p in a)
【讨论】:
b = {3,7},最后一行也可以是:any(not b.isdisjoint(set(p)) for p in a)
>>> a = set([(1,2),(3,4),(5,6)]) >>> b = set((8,7)) >>> any(b|set(p) for p in a) True ; 8 或 7 都不是,但我得到了 True。 @RikPoggi 的是正确的。
for tuple in a:
for value in tuple:
if value in [3, 7]:
print 'found'
【讨论】:
>>> from itertools import chain
>>> if set(chain(*set([(1,2),(3,4),(5,6)])))&set([3,7]):
... print True
...
True
【讨论】: