从 Python 中的元组列表中删除重复的元组
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 是 l 的成员,则 x in l
的计算结果为 True,否则计算结果为 False。
x not in l
返回x in l
的否定。
如果满足条件,我们使用
list.append()
方法将元组添加到新列表中。
list.append()
方法将一个项目添加到列表的末尾。
新列表不包含任何重复的元组。
或者,我们可以使用 set()
类。
要从元组列表中删除重复的元组:
- 使用
set()
类将列表转换为一组元组。 - 任何重复的元组将在转换后自动删除。
- 使用
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()
类接受一个可迭代的可选参数,并返回一个新的集合对象,其中的元素取自可迭代对象。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。