如何过滤具有给定键的匹配值的词典列表 [英] How to filter list of dictionaries with matching values for a given key

查看:70
本文介绍了如何过滤具有给定键的匹配值的词典列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

具有类似a = copyf(dictlist, key, valuelist)的界面.

>>> dictlist = [{'first': 'James',
                 'last': 'Joule'},
                {'first': 'James',
                 'last': 'Watt'},
                {'first': 'Christian',
                 'last': 'Doppler'}]
>>> valuelist = ['James', 'John']
>>> x = copyf(dictlist, 'first', valuelist)
>>> print(x)
[{'first': 'James',
  'last': 'Joule'},
 {'first': 'James',
  'last': 'Watt'}]

dictlist实际上是一个csv.DictReader实例.

推荐答案

更新:考虑到OP的重新编辑问题:

Update: taking into account the reedited question of the OP:

def copyf(dictlist, key, valuelist):
      return [dictio for dictio in dictlist if dictio[key] in valuelist]

这篇关于如何过滤具有给定键的匹配值的词典列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆