python 集合推导公式中,为什么命令行和方法调用的结果不一样呢

python 集合推导公式中,为什么命令行和方法调用的结果不一样呢

分析:x in range(1,100)出来结果是1-99,应该是顺序显示的,正如数字2表示出来的那样,可用print()打印出来怎么会是这个结果?请教下各位大神### 问题描述


回答:

  1. 集合本来就是无序的
  2. 图中的两个集合是相等的
  3. 请停止使用Python2
  4. 我在Python 3.8里测试过没有这种问题,结果都是第一个


回答:

集合本身就是无序的,为什么要考虑排序呢。


回答:

set本来就是无序的

m = {x for x in range(1,100) if x%9 == 0}

print(m,type(m))

m = [x for x in range(1,100) if x%9 == 0]

print(m,type(m))

输出

(set([99, 36, 72, 9, 45, 81, 18, 54, 90, 27, 63]), <type 'set'>)

([9, 18, 27, 36, 45, 54, 63, 72, 81, 90, 99], <type 'list'>)

  • 出处

    • 《Python3.6.5标准库文档》4.9 set类型 - set,frozenset

第二个图不清楚什么原因,应该是在jupyter环境中的特殊现象

以上是 python 集合推导公式中,为什么命令行和方法调用的结果不一样呢 的全部内容, 来源链接: utcz.com/a/160489.html

回到顶部