2024-10-01 00:21:58 发布
网友
当我这样做时:
set('zbc')
因此,我得到:
{'b' , 'z' , 'c'}
当我开始另一个python代码并键入相同的内容时,我得到的顺序不同?为什么呢?有没有办法每次都得到同样的订单?谢谢
读一下这个documentation
集合是无序集合
您可以使用其他模块,如OrderedDict
from collections import OrderedDict od = OrderedDict() od['a'] = 1 od['b'] = 2 od['c'] = 3 od['d'] = 4 for key, value in od.items(): print(key, value)
输出:
('a', 1) ('b', 2) ('c', 3) ('d', 4)
set中的顺序不受保证,因为它们基于哈希表而不是平衡树
set
此外,当Python开始避免对服务器的拒绝服务攻击时,散列是随机的:精心编制的请求可能会将服务器置于字典上的O(n)搜索时间,使服务器无法及时响应
O(n)
另一方面dict最近发生了变化,它保持了插入顺序;因此,如果只插入元素,然后迭代字典,则键/值对的顺序将与插入它们时的顺序相同
dict
而不是像
{'c', 'b', 'z'}
你可以像这样使用口述
{'c': None, 'b': None, 'z': None}
在最近的CPython上,键序列将是c、b和z(不确定其他Python实现是否已经与此对齐)
c
b
z
读一下这个documentation
集合是无序集合
您可以使用其他模块,如OrderedDict
输出:
set
中的顺序不受保证,因为它们基于哈希表而不是平衡树此外,当Python开始避免对服务器的拒绝服务攻击时,散列是随机的:精心编制的请求可能会将服务器置于字典上的
O(n)
搜索时间,使服务器无法及时响应另一方面
dict
最近发生了变化,它保持了插入顺序;因此,如果只插入元素,然后迭代字典,则键/值对的顺序将与插入它们时的顺序相同而不是像
你可以像这样使用口述
在最近的CPython上,键序列将是
c
、b
和z
(不确定其他Python实现是否已经与此对齐)相关问题 更多 >
编程相关推荐