📜  Python – 删除所有重复出现的元组记录

📅  最后修改于: 2022-05-13 01:55:28.801000             🧑  作者: Mango

Python – 删除所有重复出现的元组记录

有时,在处理记录时,我们可能会遇到删除那些多次出现的记录的问题。这种应用可以发生在Web开发领域。让我们讨论可以执行此任务的某些方式。

方法 #1:使用列表理解 + set() + count()
可以应用的初始方法是我们可以迭代每个元组并使用 count() 检查它在列表中的计数,如果大于一,我们可以删除它们,然后转换为 set。

# Python3 code to demonstrate working of
# Remove all Duplicate occurring records
# Using list comprehension + set() + count()
  
# initialize list
test_list = [(3, 4), (4, 5), (3, 4), (3, 6), (4, 5), (6, 7)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Remove all Duplicate occurring records
# Using list comprehension + set() + count()
res = list(set([ele for ele in test_list if not test_list.count(ele) > 1]))
  
# printing result
print("All the non Duplicate from list are : " + str(res))
输出 :
The original list : [(3, 4), (4, 5), (3, 4), (3, 6), (4, 5), (6, 7)]
All the non Duplicate from list are : [(6, 7), (3, 6)]

方法#2:使用Counter() + items() + list comprehension
上述功能的组合也可用于执行此特定任务。在这种情况下,我们只是使用 Counter() 作为字典来获取每个元素出现的计数,然后提取所有值等于 1 的元素。

# Python3 code to demonstrate working of
# Remove all Duplicate occurring records
# Using list comprehension + Counter() + items()
from collections import Counter
  
# initialize list
test_list = [(3, 4), (4, 5), (3, 6), (3, 4), (4, 5), (6, 7)]
  
# printing original list 
print("The original list : " + str(test_list))
  
# Remove all Duplicate occurring records
# Using list comprehension + Counter() + items()
res = [ele for ele, count in Counter(test_list).items() if count == 1]
  
# printing result
print("All the non Duplicate from list are : " + str(res))
输出 :
The original list : [(3, 4), (4, 5), (3, 4), (3, 6), (4, 5), (6, 7)]
All the non Duplicate from list are : [(6, 7), (3, 6)]