我有一个带变量值的列表,比如
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]都是不同的。
答案 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