如何检查元组或列表中的所有元素是否都在另一个元组或列表中?
How to check if all elements in a tuple or list are in another?
例如,我想检查元组 (1, 2)
中的每个元素都在元组 (1, 2, 3, 4, 5)
中。
我认为使用循环不是一个好方法,我认为它可以在一行中完成。
您可以使用 set.issubset
or set.issuperset
检查一个元组或列表中的每个元素是否在另一个元组或列表中。
>>> tuple1 = (1, 2)
>>> tuple2 = (1, 2, 3, 4, 5)
>>> set(tuple1).issubset(tuple2)
True
>>> set(tuple2).issuperset(tuple1)
True
另一种选择是在不考虑集合时创建一个简单的函数。
def tuple_containment(a,b):
ans = True
for i in iter(b):
ans &= i in a
return ans
Now simply test them
>>> tuple_containment ((1,2,3,4,5), (1,2))
True
>>> tuple_containment ((1,2,3,4,5), (2,6))
False
我想你想要这个:(使用 all )
>>> all(i in (1,2,3,4,5) for i in (1,2))
True
例如,我想检查元组 (1, 2)
中的每个元素都在元组 (1, 2, 3, 4, 5)
中。
我认为使用循环不是一个好方法,我认为它可以在一行中完成。
您可以使用 set.issubset
or set.issuperset
检查一个元组或列表中的每个元素是否在另一个元组或列表中。
>>> tuple1 = (1, 2)
>>> tuple2 = (1, 2, 3, 4, 5)
>>> set(tuple1).issubset(tuple2)
True
>>> set(tuple2).issuperset(tuple1)
True
另一种选择是在不考虑集合时创建一个简单的函数。
def tuple_containment(a,b):
ans = True
for i in iter(b):
ans &= i in a
return ans
Now simply test them
>>> tuple_containment ((1,2,3,4,5), (1,2))
True
>>> tuple_containment ((1,2,3,4,5), (2,6))
False
我想你想要这个:(使用 all )
>>> all(i in (1,2,3,4,5) for i in (1,2))
True