从 Python 中的元组列表中删除重复的元组
Remove duplicate tuples from list of tuples in Python
要从元组列表中删除重复的元组:
- 声明一个新变量并将其设置为一个空列表。
- 遍历元组列表并检查每个元组是否不在新列表中。
- 如果满足条件,则将元组添加到新列表中。
主程序
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
计算为 ,否则计算为。True
x
l
False
x not in l
返回 的否定x in l
。
如果满足条件,我们使用该
list.append()
方法将元组添加到新列表中。list.append
()
方法将一个项目添加到列表的末尾。
新列表不包含任何重复的元组。
或者,您可以使用set()
该类。
要从元组列表中删除重复的元组:
- 使用
set()
该类将列表转换set
为元组。 - 任何重复的元组将在转换后自动删除。
- 使用
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
,其中的元素取自可迭代对象。