3 回答
TA贡献1895条经验 获得超3个赞
如果通过unique您的意思是在每个 position 中不包含相同的值,那么这样的事情应该可以工作:
if len(set(map(tuple, [c1, c2, c3, c4]))) == 4:
# All four lists are unique
请注意,在这种情况下,[1,2]和[2,1]是不同的。如果,出于您的目的,它们是相同的,那么您会想要这个:
if len(set(map(frozenset, [c1, c2, c3, c4]))) == 4:
# All four lists are unique
如果您需要一些其他的独特定义,那么您需要更清楚地了解您的要求。
TA贡献1842条经验 获得超21个赞
由于顺序无关紧要,您可能希望对子列表进行排序,然后检查其中一组是否与排序列表的原始列表具有相同的长度:
ordered = [tuple(sorted(l)) for l in [c1, c2, c3, c4]]
# [('f', 'l', 't'), ('f', 'r', 't'), ('b', 'r', 't'), ('b', 'l', 't')]
unique = len(set(ordered)) == len(ordered)
# True
TA贡献1826条经验 获得超6个赞
if max(len(c1), len(c2)) != len(set(c1) & set(c2))\
and max(len(c1), len(c3)) != len(set(c1) & set(c3))\
and max(len(c1), len(c4)) != len(set(c1) & set(c4))\
and max(len(c2), len(c3)) != len(set(c2) & set(c3))\
and max(len(c3), len(c4)) != len(set(c3) & set(c4)):
print("Do something.")
else:
print("Do something else.")
添加回答
举报