【问题标题】:How to filter data in a dictionary when the values are lists当值是列表时如何过滤字典中的数据
【发布时间】:2021-09-05 16:01:25
【问题描述】:

我有下面的数据结构,我想只使用 Python 过滤这些数据。

bd = {
     'portfolio': ['long_term', 'medium_term', 'short_term', 'long_term', 'short_term'], 
     'asset_type':['stock', 'etf', 'bonds', 'bonds', 'stock'],
     'value':[2000, 3000, 5000, 8000, 1000]
}

我的目标是得到以下结果:

long_term_list = 10000 # (2000 + 8000)

stock_list = 3000 # (2000 + 1000)

【问题讨论】:

  • 您好,欢迎来到 SO。对社区来说,您还必须证明您正在努力解决您的问题。做到这一点的最好方法是包含您目前拥有的基于文本的代码版本(即使它不起作用)。根据@martineau,我真的不应该按原样回答这个问题。如果您想快速入门,请查看zip()setdefault()
  • 请提供足够的代码,以便其他人更好地理解或重现问题。

标签: python list dictionary


【解决方案1】:
bd = {
     'portfolio': ['long_term', 'medium_term', 'short_term', 'long_term', 'short_term'], 
     'asset_type':['stock', 'etf', 'bonds', 'bonds', 'stock'],
     'value':[2000, 3000, 5000, 8000, 1000]
}

long_term_list = sum([bd['value'][i] for i, x in enumerate(bd['portfolio']) if x == "long_term"])

stock_list = sum([bd['value'][i] for i, x in enumerate(bd['asset_type']) if x == "stock"])

print(long_term_list, stock_list)

给出输出

10000 3000

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-06
    • 2022-01-18
    • 2021-03-08
    • 2021-07-31
    • 2020-05-21
    • 2015-05-17
    • 2019-12-27
    相关资源
    最近更新 更多