我有一个列表列表,想要检查它是否已包含包含特定项目的列表。
这个例子应该清楚一切:
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
是否存在比较列表项目的功能,无论它们如何排序?
答案 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'。