#python-3.x
#python-3.x
Вопрос:
Я попытался обновить словарь с помощью i и y . Однако y выводился только как последний список значений переменных
multiples_6 = []
multiples_7 = []
multiples_8 = []
multiples_9 = []
multiples_10 = []
for n in range(1,5 1):
multiples_6.append(6*n)
multiples_7.append(7*n)
multiples_8.append(8*n)
multiples_9.append(9*n)
multiples_10.append(10*n)
keys = [6,7,8,9,10]
values = [multiples_6,multiples_7,multiples_8,multiples_9,multiples_10]
new_multiples = {}
for i in keys:
for y in values:
new_multiples.update({i:y})
когда я попробовал это, он дал мне только последний элемент в списке значений.
Output: {6: [10, 20, 30, 40, 50], 7: [10, 20, 30, 40, 50], 8: [10, 20, 30, 40, 50], 9: [10, 20, 30, 40, 50], 10: [10, 20, 30, 40, 50]}
Комментарии:
1. Добро пожаловать. Пожалуйста, пересмотрите, чтобы лучше описать, что вы пытаетесь сделать. Не имеет значения, новичок вы или что вы уже исследовали. Придерживайтесь фактов проблемы.
2. Как отлаживать небольшие программы . Пройдитесь по своему коду и посмотрите, что делает каждая итерация цикла. Вы перебираете все ключи и устанавливаете значение каждого ключа как каждый элемент
values
списка. Поэтому на последнейy
итерации значение каждого ключа является последним значениемvalues
.
Ответ №1:
Привет, комментарий @ Pranav Hosangadi говорит сам за себя. У вас должен быть только один цикл. Вы можете сделать это во многих формулировках на Python. Мне больше всего нравится:
for key, value in zip(keys, values):
new_multiples.update({key: value})
Комментарии:
1. Или просто
new_multiples[key] = value
.