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]}
我正在尝试使用我使用不同量的测量距离编制的上述词典,但我需要能够找到一种方法来获取所有值(以百万计(,并将每个值乘以100万。我可以对键进行迭代,但我一直在想如何迭代每个键的值。以下是我目前正在编写的代码,尽管可能是错误的。谢谢你的帮助。
MILLION = 1000000
length = len(sol[planet])
for planet in sol:
for i in sol[planet]:
i*Million
print(sol)
您可以通过字典理解来做到这一点:
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]
}
如果每个值都是一个列表,则可以执行以下操作。
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]}
,这似乎正是您想要的。
遍历dict项的副本
from copy import deepcopy
for k, v in deepcopy(sol).items():
sol[k] = [i * MILLION for i in v]