You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中向Set添加元素的输出顺序是否具有随机性?

关于Python Set元素添加顺序的疑问

代码示例

roads = set()
connections = [[0,1],[1,3],[2,3],[4,0],[4,5]]
for u, v in connections:
     roads.add((u, v))
     print(roads)

运行结果

{(0, 1)}
{(0, 1), (1, 3)}
{(0, 1), (2, 3), (1, 3)}
{(0, 1), (4, 0), (2, 3), (1, 3)}
{(0, 1), (4, 0), (2, 3), (4, 5), (1, 3)}

问题解答

Python里普通的set(也就是你代码中使用的这种)不是随机排序,它的元素顺序既不遵循插入顺序,也不是随机生成的。这是因为set内部基于哈希表实现,每个元素的存储位置由其哈希值计算得出,打印时的遍历顺序就是哈希表的存储顺序,和插入元素的顺序没有直接关联。

如果需要能保留插入顺序的集合类型,在Python 3.7及以上版本,可以用dict的键来模拟(从3.7开始官方保证dict保留插入顺序,且键具有唯一性),写法示例:ordered_roads = dict.fromkeys(connections).keys();也可以使用collections模块的OrderedDict来实现类似效果。

内容的提问来源于stack exchange,提问作者DrNogNog

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 15:54:43