保留原有数据顺序的列表除重复
本帖最后由 lys76 于 2022-6-24 15:34 编辑集合可以除重,但会丢失数据的原有顺序
nums =
# 利用字典的键(key)不能重复的特点除重,然后强制转list
my_dict = {i: None for i in nums}
print(list(my_dict))
# 利用有序字典除重
from collections import OrderedDict
nums1 = list(OrderedDict.fromkeys(nums).keys())
print(nums1)
执行结果均为:
数据顺序得以有效保留 nums =
# 利用字典的键(key)不能重复的特点除重,然后强制转list
# my_dict = {i: None for i in nums}
my_dict = dict.fromkeys(nums)# 今天学到fromkeys构建字典,不指定值时,默认None
print(list(my_dict)) nums =
num_bak = []
for i in nums:
if i not in num_bak:
num_bak.append(i)
print(num_bak) 第一种方法好评,易懂! wkdxz 发表于 2022-6-24 07:37
第一种方法好评,易懂!
谢谢,大家相互进步:handshake 本帖最后由 paypojie 于 2022-6-24 08:53 编辑
print(list({i for i in })) 看看学学,以后用得上 paypojie 发表于 2022-6-24 08:52
你这个还是修改了原本排序,还不如直接set(nums) 第一种方法适用于3.x后, 忘了哪个版本开始的了, 之前的字典是无序的 cao1124 发表于 2022-6-24 11:33
你这个还是修改了原本排序,还不如直接set(nums)
新版 python 的字典是有序的. stoner 发表于 2022-6-24 14:38
新版 python 的字典是有序的.
嗯,但是要像楼主第一种方式,把list的值作为dict的key去重,所以要给i一个value,四楼的没赋值就不得行。 paypojie 发表于 2022-6-24 08:52
牛啊,学习到了。遍历放进集合,集合自动去重,然后再转换为list
页:
[1]
2