2016-10-14 8 views
0
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?типа 'множество' это разница между __str__ и печати непосредственно

ответ

4

Потому что {...} синтаксис wasn't introduced until Python 2.7, и к тому времени формат set([...])repr() был уже установлен.

Таким образом, чтобы сохранить существующий код Python 2, который, возможно, полагался на рабочее представление set([...]), repr() не был изменен в серии 2.x. У Python 3 была {...} нотация для множеств с самого начала.