python删除重复数组且保持原有顺序
时间: 2023-11-09 21:07:57 浏览: 40
可以使用OrderedDict来实现:
```python
from collections import OrderedDict
def remove_duplicates(arr):
return list(OrderedDict.fromkeys(arr))
arr = [1, 2, 3, 2, 1, 4, 5, 4]
print(remove_duplicates(arr)) # 输出 [1, 2, 3, 4, 5]
```
首先,fromkeys方法创建一个新的OrderedDict对象,其中每个键都对应于arr列表中的一个唯一元素。最后,我们将OrderedDict的键转换为列表以获得唯一的元素列表,并按原始顺序排列。
相关问题
python中将数组去重后不改变序列顺序怎么做
可以使用Python中的set()函数来实现数组去重,然后将去重后的元素重新存放到一个新的数组中,这样就可以保持原有的顺序不变。具体实现可以参考以下代码:
```
# 原始数组
arr = [1, 2, 3, 2, 4, 3, 5, 6, 5]
# 创建一个空的列表
new_arr = []
# 遍历原始数组
for i in arr:
# 如果元素不在新数组中,则添加到新数组中
if i not in new_arr:
new_arr.append(i)
# 打印去重后的数组
print(new_arr)
```
输出的结果为:`[1, 2, 3, 4, 5, 6]`,可以看到原有的顺序并没有改变。
python 数组去重
要对Python数组进行去重,你可以使用set()函数或者使用列表推导式。下面是两种常见的方法:
1. 使用set()函数:
```python
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = list(set(my_list))
print(unique_list)
```
输出:
```
[1, 2, 3, 4, 5]
```
2. 使用列表推导式:
```python
my_list = [1, 2, 2, 3, 4, 4, 5]
unique_list = []
[unique_list.append(x) for x in my_list if x not in unique_list]
print(unique_list)
```
输出:
```
[1, 2, 3, 4, 5]
```
这两种方法都可以移除重复的元素并获得一个不重复的数组。使用set()函数的方法会打乱原有的顺序,而使用列表推导式的方法可以保持原有的顺序。根据你的需求选择合适的方法。