如何测试列表是否包含Python中具有特定项的另一个列表?

时间:2010-11-05 18:33:09

标签: python list sorting

我有一个列表列表,想要检查它是否已包含包含特定项目的列表。

这个例子应该清楚一切:

list = [[1,2],[3,4],[4,5],[6,7]]
for test in [[1,1],[1,2],[2,1]]:
  if test in list:
    print True
  else:
    print False

#Expected:
#        False
#        True
#        True

#Reality:
#        False
#        True
#        False

是否存在比较列表项目的功能,无论它们如何排序?

3 个答案:

答案 0 :(得分:6)

您想要使用的是一套: set([1,2]) == set([2,1]) 返回True。

所以

list = [set([1,2]),set([3,4]),set([4,5]),set([6,7])]
set([2,1]) in list

也会返回True。

答案 1 :(得分:5)

如果它们确实设置了,请使用设置类型

# This returns True 
set([2,1]) <= set([1,2,3])

<=表示'处理集时'是'的子集。有关详情,请参阅operations on set types

答案 2 :(得分:1)

如果你想获得[1,2] = [2,1],你不应该使用列表。设置是正确的类型。在列表中,组件的顺序很重要,在集合中它们不重要。这就是为什么你没有得到'False True True'。