Используя 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 ) именно из-за того, что вы обнаружили, и она была исправлена).