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