【发布时间】:2014-04-12 20:28:28
【问题描述】:
我有两个字典列表
listA = [{'id': 'abc', 'key1': '542696d8485b'}]
listB = [{'id': 'abc', 'key1': '542696d8485b'}, {'id': 'def', 'key1': '27348628grn'}]
我要提取listC = [{'id': 'abc', 'key1': '542696d8485b'}]
即我想根据“id”字段查找交集(基于任何一个字段,假设列表中的常见项目完全相同)。建议我一些有效的pythonic方式...
怎么样
listA_set = set(item['id'] for item in listA)
listB_set = set(item['id'] for item in listB)
listC_set = listA_set & listB_set
listC = {item:listA[item] for item in listC_set}
【问题讨论】:
-
如果
id相同但key1不同,key1的值应该是多少? -
我认为两个列表中提到的值完全相同,仍然更新了我的问题 - 我想现在更好。
-
@Nish 你认为使用集合比使用列表更好吗?
-
有趣的是,这个有多个反对票,而stackoverflow.com/questions/33542997/… 有赞成票...
标签: python list dictionary list-comprehension