как умножить значения словаря, которые являются кратными - PullRequest
0 голосов
/ 17 февраля 2019

Как мне умножить значения этого словаря на 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 голосов
/ 17 февраля 2019

Вам нужно перебирать значения словаря и умножать каждый элемент на 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)
0 голосов
/ 17 февраля 2019

Здесь вам нужно сделать понимание списка

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]}
0 голосов
/ 17 февраля 2019

Вы пытаетесь умножить кортеж, что приводит к дублированию значений в вашем кортеже.Вместо этого, чтобы алгебраически взаимодействовать с вашими кортежами, вы должны делать это по одному значению за раз.

for i in d:
    print(d[i][0]*2, d[i][1]*2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...