Используя PyCharm, я заметил, что он предлагает преобразовать dict литерал :
d = {
'one': '1',
'two': '2',
}
в конструктор dict :
d = dict(one='1', two='2')
Различаются ли эти разные подходы каким-либо существенным образом?
(При написании этого вопроса я заметил, что с помощью dict()него невозможно указать числовой ключ ... d = {1: 'one', 2: 'two'}возможно, но, очевидно, dict(1='one' ...)нет. Что-нибудь еще?)
dict(abc = 123)конструктор создает словарь с ключами байтовой строки 'abc', что может быть удивительно, если вы используете unicode_literalsи ожидаете, что ключи словаря будут в юникоде u'abc'. См. Stackoverflow.com/questions/20357210/… .
dict()принимает список пар ключ-значение, а также разрешает именованные параметры, поэтому он может использовать для создания любого типа dict, только не с синтаксисом, который вы используете. Также, вероятно, ничего не стоит, что в pyCharm была ошибка ( youtrack.jetbrains.net/issue/PY-2512 ) именно из-за того, что вы обнаружили, и она была исправлена).