如果我有一个列表,例如
[[a,b], [b,a], [c,d], [d,c]]
但是在字母对列表不相邻的情况下,如何遍历列表并仅以字母对之一结束?
答案 0 :(得分:1)
如果您不关心订单,那么最简单的方法是使用sets和frozensets:
lst = [[a,b], [b,a], [c,d], [d,c]]
result = [list(x) for x in {frozenset(t) for t in lst}]
# result output: [[a,b], [c,d]]
从frozenset([a,b]) == frozenset([b,a])
开始,集合理解{frozenset(t) for t in lst}
将仅对每对包含一次。外部列表推导会将冻结集的集合转换回列表列表。