python set 去重逻辑是什么,会保留下标小的那个元素么

python  set 去重逻辑是什么,会保留下标小的那个元素么

python set 去重逻辑是什么,会保留下标小的那个元素么
a = [1,2,3,1,4,3]
b = set(a)之后,b = [1,2,3,4]
b中的1,3分别是a中的第0位和第2位么


回答:

set是基于hash去重的。
b是一个set,不是list。
所有对象中引用的数字1,都是同一个对象:

b=list(b)

a[0] is a[3] # true

a[0] is b[0] # true

但超过256的整数有可能不同,这跟python的优化机制有关:
https://blog.csdn.net/qdPytho...


回答:

set基于hash去重, 结果是无序的
执行顺序从左到右也就是优先标小的
但表现的顺序"不一定是标小的"

>>> list(set([2,1,2]))

[1, 2]

保持顺序可以使用:

# py3.6+

b = list({}.fromkeys(a).keys())

以上是 python set 去重逻辑是什么,会保留下标小的那个元素么 的全部内容, 来源链接: utcz.com/p/938041.html

回到顶部