从 Python 中的元组列表中删除重复的元组

从 Python 中的元组列表中删除重复的元组

Remove duplicate tuples from list of tuples in Python

要从元组列表中删除重复的元组:

  1. 声明一个新变量并将其设置为一个空列表。
  2. 遍历元组列表并检查每个元组是否不在新列表中。
  3. 如果满足条件,则将元组添加到新列表中。
主程序
list_of_tuples = [('a', 1), ('b', 2), ('a', 1), ('b', 2), ('c', 3)] new_list = [] for tup in list_of_tuples: if tup not in new_list: new_list.append(tup) # 👇️ [('a', 1), ('b', 2), ('c', 3)] print(new_list)

第一步是遍历元组列表。

在每次迭代中,我们检查当前元组是否不存在于新列表中。

in 运算符
测试成员资格

例如,如果是 的成员,则
x in l计算为 ,否则计算为TruexlFalse

x not in l返回 的否定x in l

如果满足条件,我们使用该list.append()方法将元组添加到新列表中。

list.append
()
方法将一个项目添加到列表的末尾。

新列表不包含任何重复的元组。

或者,您可以使用set()该类。

要从元组列表中删除重复的元组:

  1. 使用set()该类将列表转换set为元组。
  2. 任何重复的元组将在转换后自动删除。
  3. 使用list()该类将set返回转换为列表。
主程序
list_of_tuples = [('a', 1), ('b', 2), ('a', 1), ('b', 2), ('c', 3)] result_2 = list(set(list_of_tuples)) print(result_2) # 👉️ [('a', 1), ('b', 2), ('c', 3)]

Set 对象是唯一元素的无序集合,因此当我们将元组列表转换为 aset时,所有重复项都会自动删除。

但要注意一件事——set对象是无序的,因此您不能保证列表中项目的顺序将被保留。
主程序
list_of_tuples = [('a', 1), ('b', 2), ('a', 1), ('b', 2), ('c', 3)] result_2 = list(set(list_of_tuples)) print(result_2) # 👉️ [('a', 1), ('c', 3), ('b', 2)]

如果您需要确保保留列表中元组的顺序,请使用for循环解决方案。

set()类接受一个可迭代的可选参数,并返回一个新对象set,其中的元素取自可迭代对象。