这是我在Python集合中注意到的奇怪的事情。我读到没有集合顺序,但它确实从0到79弹出较低的元素,后来从79到127弹出较低的元素。它不再弹出较低的那些。只有在128后进入79才被弹出。为什么会这样?
在Python中,有没有其他方法可以使用有序数据结构?
为什么从0到79而不是从79到127会是最低的呢?

>>s = set()
>>s.add(72)
>> s.add(74)
>> s.add(76)
>> s.pop()
72
>> s.add(79)
>> s.pop()
74
>> s.add(81)
>> s
set([81, 76, 79])
>> s.pop()
76
>> s.add(83)
>> s
set([81, 83, 79])
>> s.add(85)
>> s
set([81, 83, 85, 79])
>> s.pop()
81
>> s
set([83, 85, 79])

最佳答案

根据词典中元素的插入和删除,内部排序是“一致的”。见:http://docs.python.org/library/stdtypes.html#dict.items
据我所知,集合使用相同的哈希实现,并且很可能具有相同的排序效果。

关于python - Python-设置.pop()行为,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12005436/

10-11 08:40