Умножение списка на значения словаря

#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 .