Python|删除不一样的列表
有时,在使用Python列表时,我们可以有一个二进制矩阵(嵌套列表有 2 个元素)。我们可能会遇到一个问题,我们需要删除不同的列表。一对是唯一的,无论顺序如何,它都不会再次出现在列表中。让我们讨论一下可以执行此任务的特定方式。
方法:使用frozenset() + Counter()
+ 列表理解
上述功能的组合可以执行此任务。 freezeset() 用于忽略排序,Counter() 用于执行检查唯一性的任务,并使用列表理解完成迭代。
# Python3 code to demonstrate working of
# Remove unidentical lists
# using frozenset() + Counter() + list comprehension
from collections import Counter
# initialize list
test_list = [[5, 6], [9, 8], [8, 9], [1, 4], [6, 5], [10, 1]]
# printing original list
print("The original list is : " + str(test_list))
# Remove unidentical lists
# using frozenset() + Counter() + list comprehension
temp = Counter(frozenset(ele) for ele in test_list)
res = [ele for ele in test_list if temp[frozenset(ele)] >= 2]
# printing result
print("The list after removal of unidentical lists : " + str(res))
输出 :
The original list is : [[5, 6], [9, 8], [8, 9], [1, 4], [6, 5], [10, 1]]
The list after removal of unidentical lists : [[5, 6], [9, 8], [8, 9], [6, 5]]