TG Telegram Group & Channel
Библиотека Python разработчика | Книги по питону | United States America (US)
Create: Update:

Ты можешь создавать словари двумя способами: с помощью литералов или функции dict:


>>> dict(a=1, b=2)
{'a': 1, 'b': 2}
>>> {'a': 1, 'b': 2}
{'a': 1, 'b': 2}


Литералы работают быстрее, чем dict, но у функции есть свои преимущества.

Во-первых, не нужно ставить дополнительные кавычки. Однако это работает только в том случае, если все ключи — допустимые идентификаторы Python:


>>> dict(a=1)
{'a': 1}
>>> dict(1='a')
File "<stdin>", line 1
SyntaxError: keyword can't be an expression


Во-вторых, ты не сможешь случайно указать один и тот же ключ дважды:


>>> {'a': 1, 'a': 1}
{'a': 1}
>>> dict(a=1, a=1)
File "<stdin>", line 1
SyntaxError: keyword argument repeated


В-третьих, легко создать новый словарь на основе уже существующего:


>>> d = dict(b=2)
>>> dict(a=1, **d)
{'a': 1, 'b': 2}


Но учти, что ключи нельзя переопределять при таком способе:


>>> dict(b=3, **d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: type object got multiple values for keyword argument


👉@BookPython

Ты можешь создавать словари двумя способами: с помощью литералов или функции dict:


>>> dict(a=1, b=2)
{'a': 1, 'b': 2}
>>> {'a': 1, 'b': 2}
{'a': 1, 'b': 2}


Литералы работают быстрее, чем dict, но у функции есть свои преимущества.

Во-первых, не нужно ставить дополнительные кавычки. Однако это работает только в том случае, если все ключи — допустимые идентификаторы Python:


>>> dict(a=1)
{'a': 1}
>>> dict(1='a')
File "<stdin>", line 1
SyntaxError: keyword can't be an expression


Во-вторых, ты не сможешь случайно указать один и тот же ключ дважды:


>>> {'a': 1, 'a': 1}
{'a': 1}
>>> dict(a=1, a=1)
File "<stdin>", line 1
SyntaxError: keyword argument repeated


В-третьих, легко создать новый словарь на основе уже существующего:


>>> d = dict(b=2)
>>> dict(a=1, **d)
{'a': 1, 'b': 2}


Но учти, что ключи нельзя переопределять при таком способе:


>>> dict(b=3, **d)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: type object got multiple values for keyword argument


👉@BookPython


>>Click here to continue<<

Библиотека Python разработчика | Книги по питону




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)