Формирование словаря в Python?
Всем привет! Не пойму, почему данная конструкция возвращает словарь?
def foo(s: str): return s, len(s) s = ["Воронеж"] d = dict(foo(i) for i in s) print(d) |
А вот эта конструкция возвращает ошибку
def foo(s: str): return s, len(s) s = ["Воронеж"] d = dict(foo(s)) print(d) |
Дополнительно:
тебе в ошибке даже написали причину
dict([("Воронеж", 7)])
Во втором же случае, ты передаешь кортеж не с парами (ключ, значени), а саму пару
dict(("Воронеж", 7))
И когда берется первый элемент, ожидается что он будет парой, а он строка
Потому, что в первом случае во встроенную ф-ию dict передаëтся итератор кортежей, а во втором - кортеж из 2 элементов (словарь и целое число). Из итератора кортежей можно сделать словарь, из кортежа, состоящего из списка и целого числа - нет.
- Спасибо за ответ!
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для формирования словаря в Python можно использовать фигурные скобки {} и указать пары ключ-значение через двоеточие. Вот пример:
Также можно создать словарь сразу с заданными значениями:
Для доступа к значениям по ключу можно использовать следующий синтаксис:
Если нужно получить все ключи или все значения из словаря, можно воспользоваться методами keys() и values():
Таким образом, вы можете легко создать и работать со словарями в Python, используя вышеприведенные примеры.