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

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 是 l 的成员,则 x in l 的计算结果为 True,否则计算结果为 False

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

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

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

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

或者,我们可以使用 set() 类。

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

  1. 使用 set() 类将列表转换为一组元组。
  2. 任何重复的元组将在转换后自动删除。
  3. 使用 list() 类将集合转换回列表。
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)]

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

但要注意一件事——集合对象是无序的,因此我们不能保证列表中项目的顺序将被保留。

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() 类接受一个可迭代的可选参数,并返回一个新的集合对象,其中的元素取自可迭代对象。