ValueError при обновлении словаря списком - PullRequest
1 голос
/ 02 марта 2020

Не найдено связанных дубликатов.

Мне нужно обновить словарь со списком (вложенный список) длиной 2. Я ожидал, что это сработает, поскольку Python документы говорят, что метод update () может получить словарь или итерацию длина 2 https://docs.python.org/3/library/stdtypes.html#dict .update

Вот код:

list1 = [['a', 12], ['b', 45], ['c', 7]]
dict1 = {}

#confirmation of length:
print(len(list1[0])) # prints 2

for i in list1:
    dict1.update(i)

print(dict1)

Вот еще один фрагмент, который приводит к той же ошибке:

print(dict(list1[0]))

Итак, мой вопрос: почему это не работает?

1 Ответ

2 голосов
/ 02 марта 2020

Вы можете обновить все сразу:

dict1.update(list1)

или распаковать

for key, val in list1:
    dict1.setdefault(key, val)

Ваш первый вариант не работает, потому что вы пытаетесь обновить список, ваш второй, потому что вы конвертируем список значений, а не список пар.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...