python 集合推导公式中,为什么命令行和方法调用的结果不一样呢
分析:x in range(1,100)出来结果是1-99,应该是顺序显示的,正如数字2表示出来的那样,可用print()打印出来怎么会是这个结果?请教下各位大神### 问题描述
回答:
- 集合本来就是无序的
- 图中的两个集合是相等的
- 请停止使用Python2
- 我在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