a=set(list())元素按顺序变化,即使它有不同的元素


a = [0, 22, 2, 3, 44, 5, 6, 27, 8, 19]
print(a)
print(set(a))

但我需要像这个一样

output:
[0, 22, 2, 3, 44, 5, 6, 27, 8, 19]
{0, 2, 3, 5, 6, 8, 44, 19, 22, 27}

为了获得这种输出,我可以将list与for一起使用。。也使用以下cade或方法(从列表中删除重复项(。。有很多方法。。但是

lis = []
for i in a:
if i in lis:
lis.append(i)
print(lis)
output:
[0, 22, 2, 3, 44, 5, 6, 27, 8, 19]

但问题是我需要在set函数中获得这种输出,并给出它按顺序变化的原因。。或者这个转变是谁干的

Python文档中介绍了这一点。集合在内部使用哈希表结构以加快查找速度。枚举该表不会保留插入顺序。

您可以使用dict来实现这一点,它恰好在Python3.6及更高版本中保留了插入顺序。

a = list(dict((i,1) for i in a))

最新更新