如何乘以倍数的字典值

时间:2019-02-17 05:22:56

标签: python dictionary for-loop

该字典的值如何乘以2?

d = {'a': (1,2), 'y': (2,4), 'z': (10,3)} 

我明白了

for i in d:
    print(d[i]*2)

[1, 2, 1, 2]
[2, 4, 2, 4]
[10, 3, 10, 3]

但我要实现:

[2,4]
[4,8]
[20,6]

3 个答案:

答案 0 :(得分:0)

您正试图乘以一个元组,从而导致元组中的值重复。相反,要与元组进行代数交互,必须一次这样做一个值。

for i in d:
    print(d[i][0]*2, d[i][1]*2)

答案 1 :(得分:0)

您需要遍历字典值,并将每个元素乘以2,而不是元组* 2:

d = {'a': (1,2), 'y': (2,4), 'z': (10,3)}

for x in d.values():
    print([y*2 for y in x])

# [2, 4]
# [4, 8]
# [20, 6]

您正在做的是

>>> tupl = (1, 2)
>>> tupl * 2
(1, 2, 1, 2)

答案 2 :(得分:0)

在这里您需要进行列表理解

d = {'a': (1,2), 'y': (2,4), 'z': (10,3)}
for k in d.keys():
    d[k] = [2*x for x in d[k]]

print(d)
{'a': [2, 4], 'y': [4, 8], 'z': [20, 6]}