加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 删除列表中的重复项时的奇怪行为

发布时间:2020-12-20 12:27:50 所属栏目:Python 来源:网络整理
导读:我有一个整数列表. 我想做的是对它们进行排序并删除所有重复项. 我在网上看到了两种不同的解决方案.两者似乎都给出了与我期望的结果不同的结果. a = integer_combinations(5,5)print a[4,8,16,32,9,27,81,243,64,256,1024,25,125,625,3125]b = sorted(a)prin
我有一个整数列表.

我想做的是对它们进行排序并删除所有重复项.
我在网上看到了两种不同的解决方案.两者似乎都给出了与我期望的结果不同的结果.

a = integer_combinations(5,5)
print a
>>[4,8,16,32,9,27,81,243,64,256,1024,25,125,625,3125]

b = sorted(a)
print b
>>[4,3125]

c = dict().fromkeys(sorted(a)).keys()
print c
>> [32,4,3125,125]

另一种方法,使用集合:

d = list(set(b))
print d
>> [32,125]   

What I expect is :
>>[4,3125]

有人会知道这种行为的原因吗?

谢谢!

解决方法

这是我会用的:

>>> a = [4,3125]
>>> sorted(set(a))
[4,3125]

您的代码无法正常工作的原因是dict不保证其密钥的任何特定顺序.同样,set也无法保证其元素的排序.

因此,分拣步骤必须在最后.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读