Python列表推导将dict列表转换为具有dict键值对子集的元组列表

问题描述

我想使用列表推导将以上内容隐藏到元组列表中,但是元组中每个字典只有一个子集。

来源

source = [
  {'gem': 'gold','dimensions': {"weight":120,"height":0,"color":240},'shine': '90','worth': 10000},{'gem': 'diamond','dimensions': {"weight":80,"height":20,"color":10},'shine': '190','worth': 5000}
  ...
]

从上面的来源看,列表一旦完成就应该像这样:

[(120,240),(80,10) ]

列表中的每个元组都基于Source中匹配索引处的dict,但是只有部分嵌套dict被选中以包含在类型中:

所需数据集

[(dimensions.weight,dimensions.color),...]

我已经尝试了几种不同的方法,但是不能超出此范围:

[g["dimensions"] for g in source]

产生

[{"weight":120,{"weight":80,"color":10}]

解决方法

您是如此亲密,只需指定要包含在元组中的值

[(g["dimensions"]["weight"],g["dimensions"]["color"]) for g in source]