#python
#python
Вопрос:
У меня есть:
market = {
"APPL" : 2.33 },
"IBM" : 3.44 },
"AMZN" : 5.33 }
}
portfolio = {
"APPL" : 0.20,
"IBM" : 0.05
}
Я хочу объединить вышеупомянутые словари в единый список, который имеет следующую структуру. Для выполнения умножения используются общие ключи:
index 0: Multiplication of 2.33 and 0.20
index 1: Multiplication of 3.44 and 0.05
Есть идеи?
Ответ №1:
Вы могли бы использовать понимание списка:
market = {
"APPL" : 2.33,
"IBM" : 3.44,
"AMZN" : 5.33 }
portfolio = {
"APPL" : 0.20,
"IBM" : 0.05
}
out = [value * market[key] for key, value in portfolio.items()]
print(out)
# [0.466, 0.17200000000000001]
Обратите внимание, однако, что dicts упорядочены только начиная с Python 3.6, поэтому порядок значений в списке гарантированно соответствует порядку элементов в portfolio
dict только с этими версиями.
Ответ №2:
Вы могли бы перебирать элементы портфолио следующим образом:
[value * market[key] for key, value in portfolio.items()]
или, если вы хотели сохранить ключи:
{key: value * market[key] for key, value in portfolio.items()}
Редактировать: я пропустил, что вы хотели список, а не dict
Ответ №3:
Вы можете использовать понимание списка, которое перебирает ключи portfolio
и выводит произведения соответствующих значений:
[market[k] * v for k, v in portfolio.items()]