Python-将两个字典合并到一个列表中(按键)

时间:2019-03-28 18:51:45

标签: 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

有什么想法吗?

3 个答案:

答案 0 :(得分:0)

您可以像这样遍历投资组合的各个项目:

[value * market[key] for key, value in portfolio.items()]

或者,如果您想保留密钥,则:

{key: value * market[key] for key, value in portfolio.items()}

编辑:我想念你想要一个列表,而不是字典

答案 1 :(得分:0)

您可以使用列表推导,该列表推导遍历portfolio的键并输出相应值的乘积:

[market[k] * v for k, v in portfolio.items()]

答案 2 :(得分:0)

您可以使用列表理解:

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]

但是请注意,仅从python 3.6开始才对字典进行排序,因此只能保证列表中值的顺序与这些版本的portfolio字典中的项顺序匹配。