有没有办法检查Python中多个列表是否相等?

时间:2015-12-06 18:26:30

标签: list python-2.7

我有一个带变量值的列表,比如

for a in range(0,2):
    for b in range(0,2):
        for c in range(0,2):
            myList = [a, b, c, 1]

然后我想生成所有列表,使得有序对[a,b],[b,c] [c,1]都是不同的。

  1. 我该怎么做?
  2. 有没有办法检查它们是否一次都不相等,而不是每次都不平等"成对?

1 个答案:

答案 0 :(得分:0)

我能够有效地考虑进行多向唯一性检查的唯一方法是使用hashable类型并将值放入set。如果集合的大小与您添加到其中的项目数量相同,则它们都是唯一的:

for a in range(0,2):
    for b in range(0,2):
        for c in range(0,2):
            if len(set([(a,b), (b,c), (c,1)])) == 3:
                myList = [a, b, c, 1]
                # do stuff with myList here

虽然只有三个项目,但只做三个不等式测试可能会更快。或者,由于恰好有4个有效的[a,b,c,1]列表,您可以对它们进行硬编码:

for valid_list in [[0,0,1,1], [1,0,0,1], [1,0,1,1], [1,1,0,1]]:
    # do stuff with valid_list