Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 根据应用于其中一个列表的条件筛选出词典的所有列表_Python_List_Dictionary - Fatal编程技术网

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},等等]