set()函数打乱了列表的顺序



这看起来有点奇怪!我做了一个程序,要求我从列表中删除重复的数字,并选择倒数第二个数字。我用set()来做。然而,我想到了一些意想不到的事情。

set([32.0,36.0,39.0,40.0])

的输出为[32.0,40.0,36.0,39.0]。我想知道为什么会这样。我使用python 3.9.1提前感谢

from collections import OrderedDict
list(OrderedDict.fromkeys([10,2,2,1,10,3,3]))

如果您使用的是Python 3.7或更高版本,则可以使用字典而不是集合。

>>> l = [32.0,36.0,39.0,40.0]
>>> l[:] = list(dict.fromkeys(l))
>>> l
[32.0, 36.0, 39.0, 40.0]

键将按照插入字典的顺序排序。

最新更新