Формирование словаря в 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(i) for i in s) print(d)
А вот эта конструкция возвращает ошибку
def foo(s: str): return s, len(s) s = ["Воронеж"] d = dict(foo(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 можно использовать фигурные скобки {} и указать пары ключ-значение через двоеточие. Вот пример:
# Создание пустого словаря my_dict = {} # Добавление элементов в словарь my_dict['key1'] = 'value1' my_dict['key2'] = 'value2' # Вывод словаря print(my_dict)
Также можно создать словарь сразу с заданными значениями:
my_dict = {'key1': 'value1', 'key2': 'value2'}
Для доступа к значениям по ключу можно использовать следующий синтаксис:
print(my_dict['key1']) # Выведет 'value1'
Если нужно получить все ключи или все значения из словаря, можно воспользоваться методами keys() и values():
# Вывод всех ключей print(my_dict.keys()) # Вывод всех значений print(my_dict.values())
Таким образом, вы можете легко создать и работать со словарями в Python, используя вышеприведенные примеры.