小丫么小二郎~ 2022-06-01 09:53 采纳率: 83.3%
浏览 39
已结题

python中集合推导式输出为啥是乱序

为啥输出是乱序的呢

list1={1,2,3,4,5,6}
list3={i**3 for i in list1}
print(list3)
#结果

{64, 1, 8, 216, 27, 125}

  • 写回答

3条回答 默认 最新

  • 不会长胖的斜杠 后端领域新星创作者 2022-06-01 10:12
    关注

    注释:集合是无序的,因此您无法确定项目的显示顺序。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • 请叫我问哥 Python领域新星创作者 2022-06-01 10:12
    关注

    集合是无序的
    主要原因是和集合添加元素时的底层计算逻辑有关,python会根据元素的harsh值与现有元素作对比(去重),然后选择效率最高的方式把元素放置在集合里。因为是无序的,所以展现出来的顺序并不代表元素在集合里的位置。

    评论 编辑记录
  • 於黾 2022-06-01 10:21
    关注

    从结论出发,答案就是集合是无序的
    那么集合为什么是无序的呢,因为为了实现集合之间的与或非快速操作,搜索复杂度必须是O(1),那么就要在后台使用散列算法等方法进行存储,而不能线性存储,也就导致无法同时满足排序要求
    另,字典在3.7以前也是无序的,3.7以后输出时可以保证按输入的顺序输出

    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 6月9日
  • 已采纳回答 6月1日
  • 创建了问题 6月1日

悬赏问题

  • ¥15 电脑锁屏时vba运行SAP,excel数据不能复制到SAP
  • ¥50 74LS系列 74LS00 74LS04设计一个RS485电路(关键词-差分)
  • ¥30 各位help写一下代码
  • ¥15 在运行SDEdit模型下载不了
  • ¥15 求51控制l298n驱动的小车中超声波避障怎么写
  • ¥15 电脑连上WIFI却用不了
  • ¥30 MATLAB在RLC电路的固有响应和阶跃响应GUI仿真报告
  • ¥15 hyper-v出现的问题
  • ¥15 有能用的可加酬金,求可以批量下载懒人听书的软件,能登录自己帐号的。
  • ¥100 高博一起做RGB-D SLAM(5)VO无法出visualisation问题