In [1]: import sys
In [2]: sys.version_info
Out[2]: sys.version_info(major=3, minor=5, micro=2, releaselevel='final', serial=0)
In [3]: b=set([10,20,40,32,67,40,20,89,300,400,15])
In [4]: b
Out[4]: {10, 11, 15, 20, 32, 40, 67, 89, 111, 300, 400}
In [1]: import sys
In [2]: sys.version_info
Out[2]: sys.version_info(major=2, minor=7, micro=12, releaselevel='final', serial=0)
In [3]: b=set([10,20,40,32,67,40,20,89,300,400,15])
In [4]: b
Out[4]: set([32, 67, 40, 10, 11, 300, 15, 400, 20, 89, 111])
为什么2和3之间会有所不同?
答案 0 :(得分:4)
因为{...}
语法wasn't introduced until Python 2.7,并且到那时已经建立了set([...])
repr()
格式。
因此,为了保留可能依赖于set([...])
表示的现有Python 2代码,repr()
在2.x系列中没有更改。 Python 3从一开始就为集合设置了{...}
符号。