在 Python 中删除元组中的重复项
Remove the duplicates from a tuple in Python
要从元组中删除重复项:
- 使用
set()
该类将元组转换为set
. - 转换后将自动删除任何重复值。
- 使用
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()
方法。
要从元组中删除重复项:
- 使用
OrderedDict.fromkeys()
方法将元组转换为有序字典。 - 将元组转换为字典会删除任何重复项。
- 使用
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.
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
.
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()
该类将列表转换回元组。
我们必须使用列表,因为元组是不可变的(它们不能更改)。