Python 根据应用于其中一个列表的条件筛选出词典的所有列表
我有这本字典:Python 根据应用于其中一个列表的条件筛选出词典的所有列表,python,list,dictionary,Python,List,Dictionary,我有这本字典: d={'names': ['Mark', 'Amir', 'Matt', 'Greg', 'Owen', 'Juan'], 'weight': [165, 189, 220, 141, 260, 174], 'height': [66, 71, 72, 68, 58, 62]} 我想过滤掉它的所有列表,这样它们只包含高度大于70的项目 我知道如何逐个筛选列表。例如,高度列表: d["height"]=[height for height in d["height"] if h
d={'names': ['Mark', 'Amir', 'Matt', 'Greg', 'Owen', 'Juan'], 'weight': [165, 189,
220, 141, 260, 174], 'height': [66, 71, 72, 68, 58, 62]}
我想过滤掉它的所有列表,这样它们只包含高度大于70的项目
我知道如何逐个筛选列表。例如,高度列表:
d["height"]=[height for height in d["height"] if height>70]
这将返回筛选出高度列表的字典:
{'names': ['Mark', 'Amir', 'Matt', 'Greg', 'Owen', 'Juan'], 'weight': [165, 189,
220, 141, 260, 174], 'height': [71, 72]}
然而,这不是我想要的。我想要的是:
{'names': ['Amir', 'Matt'], 'weight': [189,220], 'height': [71, 72]}
任何人都能想到如何做到这一点?你可以使用字典理解
d = {
'names': ['Mark', 'Amir', 'Matt', 'Greg', 'Owen', 'Juan'],
'weight': [165, 189, 220, 141, 260, 174],
'height': [66, 71, 72, 68, 58, 62]
}
filtered_dict = {
key: [value for i, value in enumerate(d[key]) if d['height'][i] > 70]
for key in d
}
print filtered_dict # {'names': ['Amir', 'Matt'], 'weight': [189, 220], 'height': [71, 72]}
旁白:如果你把每个人的信息放在一起,你的数据将更容易处理,也就是说,如果你使用一系列字典,比如
[{'height':66,'name':'Mark','weight':165},{'height':71,'name':'Amir','weight':189},等等]
。