为啥输出是乱序的呢
list1={1,2,3,4,5,6} list3={i**3 for i in list1} print(list3) #结果 {64, 1, 8, 216, 27, 125}
收起
当前问题酬金
¥ 0 (可追加 ¥500)
支付方式
扫码支付
支付金额 15 元
提供问题酬金的用户不参与问题酬金结算和分配
支付即为同意 《付费问题酬金结算规则》
注释:集合是无序的,因此您无法确定项目的显示顺序。
集合是无序的主要原因是和集合添加元素时的底层计算逻辑有关,python会根据元素的harsh值与现有元素作对比(去重),然后选择效率最高的方式把元素放置在集合里。因为是无序的,所以展现出来的顺序并不代表元素在集合里的位置。
从结论出发,答案就是集合是无序的那么集合为什么是无序的呢,因为为了实现集合之间的与或非快速操作,搜索复杂度必须是O(1),那么就要在后台使用散列算法等方法进行存储,而不能线性存储,也就导致无法同时满足排序要求另,字典在3.7以前也是无序的,3.7以后输出时可以保证按输入的顺序输出
报告相同问题?