python列表保持顺序去重
时间: 2023-10-17 08:10:16 浏览: 50
可以使用Python中的set()函数来去重,然后使用sorted()函数对结果进行排序,最终得到一个保持顺序的去重列表。
示例代码如下:
```python
my_list = [3, 2, 1, 2, 3, 4, 5, 4, 3, 6]
new_list = sorted(set(my_list), key=my_list.index)
print(new_list)
```
输出结果为:
```
[3, 2, 1, 4, 5, 6]
```
在这个例子中,先使用set()函数去重,然后使用sorted()函数对结果进行排序,排序时使用了key参数,并传递了my_list.index函数。这样做可以保证排序后的列表仍然保持原有顺序。
相关问题
Python对列表进行保持顺序去重
可以使用Python中的OrderedDict和列表推导式来保持顺序去重。
以下是示例代码:
```python
from collections import OrderedDict
my_list = ['apple', 'banana', 'orange', 'apple', 'pear', 'banana']
# 使用OrderedDict和列表推导式进行保持顺序去重
my_list = list(OrderedDict.fromkeys(my_list))
print(my_list)
```
输出:
```
['apple', 'banana', 'orange', 'pear']
```
在上面的代码中,首先导入了Python中的OrderedDict类。然后,使用fromkeys方法从原始列表创建一个OrderedDict对象,该对象将自动去重并保持列表中元素的顺序。最后,使用list函数将OrderedDict对象转换回列表。
python for循环列表去重
在Python中,使用for循环可以实现列表去重。具体实现方法是,创建一个空列表,然后遍历原列表中的每个元素,如果该元素不在空列表中,则将其添加到空列表中。这样就可以得到一个去重后的新列表,而原列表的顺序也保持不变。以下是示例代码:
```
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = []
for l1 in list1:
if l1 not in list2:
list2.append(l1)
print(list2)
```
除了for循环,还可以使用其他方法实现列表去重,例如列表推导式、set去重、字典fromkeys方法去重、set+sort去重、set+sorted函数去重等。这些方法各有优缺点,可以根据实际情况选择使用。