python实现,删除列表中重复的元素,保持元素顺序不变统计
时间: 2024-05-26 21:11:16 浏览: 21
重复元素出现的次数,该怎么做?
你可以使用以下代码实现:
def count_duplicates(lst):
d = {}
for i in lst:
d[i] = d.get(i, 0) + 1
return [(key, value) for key, value in d.items() if value > 1]
def remove_duplicates(lst):
result = []
seen = set()
for i in lst:
if i not in seen:
seen.add(i)
result.append(i)
return result, count_duplicates(lst)
# 测试代码
lst = [1, 2, 3, 4, 3, 2, 1, 5, 6, 5]
new_lst, duplicates = remove_duplicates(lst)
print(new_lst)
print(duplicates)
运行结果:
[1, 2, 3, 4, 5, 6]
[(1, 2), (2, 2), (3, 2), (5, 2)]
相关问题
用python写删除列表中重复的元素,保持元素顺序不变统计
可以使用Python中的OrderedDict来实现删除列表中重复的元素,并保持元素顺序不变统计。具体代码如下:
```python
from collections import OrderedDict
def remove_duplicates(lst):
return list(OrderedDict.fromkeys(lst))
lst = [1, 2, 3, 2, 4, 3, 5, 6, 5]
new_lst = remove_duplicates(lst)
print(new_lst)
print(len(new_lst))
```
输出结果为:
```
[1, 2, 3, 4, 5, 6]
6
```
其中,`OrderedDict.fromkeys(lst)` 会生成一个字典,字典中的键为列表中的元素,值为None,由于字典的键是唯一的,因此重复的元素会被自动删除。最后再将字典的键转换成列表即可。
阅读全文