Как перебрать все значения в словаре, чтобы скорректировать их на 1 миллион, используя циклы for - PullRequest
0 голосов
/ 26 апреля 2020
sol = {"Uranus":[2750, 3000, 2880], "Mercury":[46, 70, 57], "Earth":[147, 152, 150], "Venus":[107, 109, 108], "Mars":[205, 249, 228], "Saturn":[1350, 1510, 1430], "Jupiter":[741, 817, 779], "Pluto":[4440, 7380, 5910], "Neptune":[4450, 4550, 4500]}

Я пытаюсь взять вышеупомянутый словарь, который я скомпилировал, используя различное количество измеренных расстояний, но я должен быть в состоянии найти способ взять все значения (в миллионах) и умножить каждое значение на 1 млн. Я могу перебирать ключи, но я застрял, пытаясь понять, как перебирать значения для каждого ключа. Ниже приведен код, над которым я сейчас работаю, хотя, возможно, и неправильный. Спасибо за помощь.

MILLION = 1000000
length = len(sol[planet])
for planet in sol:
    for i in sol[planet]:
           i*Million           
print(sol)

Ответы [ 3 ]

2 голосов
/ 26 апреля 2020

Вы можете сделать это с пониманием словаря:

sol = { k : [d*1000000 for d in v] for k, v in sol.items() }

Вывод:

{
 'Uranus': [2750000000, 3000000000, 2880000000],
 'Mercury': [46000000, 70000000, 57000000],
 'Earth': [147000000, 152000000, 150000000],
 'Venus': [107000000, 109000000, 108000000],
 'Mars': [205000000, 249000000, 228000000],
 'Saturn': [1350000000, 1510000000, 1430000000],
 'Jupiter': [741000000, 817000000, 779000000],
 'Pluto': [4440000000, 7380000000, 5910000000],
 'Neptune': [4450000000, 4550000000, 4500000000]
}
0 голосов
/ 26 апреля 2020

Перебрать копию элементов dict

from copy import deepcopy

for k, v in deepcopy(sol).items():
    sol[k] = [i * MILLION for i in v]
0 голосов
/ 26 апреля 2020

Если каждое значение является списком, вы можете сделать следующее.

for planet in sol:
    for i in range(len(sol[planet])):
        sol[planet][i] *= 1000000

print(sol)

Возвращает {'Uranus': [2750000000, 3000000000, 2880000000], 'Mercury': [46000000, 70000000, 57000000], 'Earth': [147000000, 152000000, 150000000], 'Venus': [107000000, 109000000, 108000000], 'Mars': [205000000, 249000000, 228000000], 'Saturn': [1350000000, 1510000000, 1430000000], 'Jupiter': [741000000, 817000000, 779000000], 'Pluto': [4440000000, 7380000000, 5910000000], 'Neptune': [4450000000, 4550000000, 4500000000]}, что, как вам кажется.

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