从 Python 中的元组中删除重复项

在 Python 中删除元组中的重复项

Remove the duplicates from a tuple in Python

要从元组中删除重复项:

  1. 使用set()该类将元组转换为set.
  2. 转换后将自动删除任何重复值。
  3. 使用tuple()该类将set返回转换为元组。
主程序
my_tuple = ('a', 'b', 'b', 'a', 'c', 'c') tuple_without_duplicates = tuple(set(my_tuple)) # 👇️ ('b', 'c', 'a') print(tuple_without_duplicates)

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

但是要注意一件事——set对象是无序的,所以你不能保证元组中项目的顺序将被保留。

如果您需要确保订单将被保留,请使用该
OrderedDict.fromkeys()方法。

要从元组中删除重复项:

  1. 使用OrderedDict.fromkeys()方法将元组转换为有序字典。
  2. 将元组转换为字典会删除任何重复项。
  3. 使用tuple()该类将字典转换回元组。
主程序
from collections import OrderedDict my_tuple = ('a', 'b', 'b', 'a', 'c', 'c') # 👇️ OrderedDict([('a', None), ('b', None), ('c', None)]) print(OrderedDict.fromkeys(my_tuple)) tuple_without_duplicates = tuple(OrderedDict.fromkeys(my_tuple)) # 👇️ ('a', 'b', 'c') print(tuple_without_duplicates)

OrderedDict类会记住其

条目的添加顺序。

fromkeys
方法接受一个可迭代对象,并使用可迭代对象中的键创建一个新字典

该方法还接受一个value参数,如果未指定则默认为
None.

由于字典键是唯一的,元组元素到字典键的转换会自动删除任何重复项。

The last step is to use the tuple() class to convert the ordered dictionary
back to a tuple.

You can also use a simple for loop to remove the duplicates from a tuple.

main.py
my_tuple = ('a', 'b', 'b', 'a', 'c', 'c') my_list = [] for item in my_tuple: if item not in my_list: my_list.append(item) tuple_without_duplicates = tuple(my_list) # 👇️ ('a', 'b', 'c') print(tuple_without_duplicates)

The first step is to iterate over the tuple.

On each iteration, we check if the current item is not present in the new list.

The
in operator
tests for membership. For example, x in l evaluates to True if x is a
member of l, otherwise it evaluates to False.

x not in l returns the negation of x in l.

If the condition is met, we use the list.append() method to add the item to the new list.

The
list.append()
method adds an item to the end of the list.

最后一步是使用tuple()该类将列表转换回元组。

我们必须使用列表,因为元组是不可变的(它们不能更改)。