Я знаю, что dicts и sets не упорядочены, поэтому одинаковые наборы или dicts могут печатать по-разному (все тесты с Python 3.6.1):
>>> for obj in {0, 8}, {8, 0}, {0:0, 8:8}, {8:8, 0:0}:
print(obj)
{0, 8}
{8, 0}
{0: 0, 8: 8}
{8: 8, 0: 0}
И я просто понял, что pprint
( "pretty-print" ) сортирует dicts, но не устанавливает:
>>> for obj in {0, 8}, {8, 0}, {0:0, 8:8}, {8:8, 0:0}:
pprint.pprint(obj)
{0, 8}
{8, 0}
{0: 0, 8: 8}
{0: 0, 8: 8}
В документации также говорится: "Словари сортируются по ключу перед вычислением дисплея". Но почему он не сортирует множество? Не кажется мне симпатичным. И есть ли способ сделать его сортировкой? Также внутри вложенных структур, поскольку это основная цель pprint
.