从python列表中提取元素

从python列表中提取元素,python,Python,我有一个python列表,其格式如下: original_list = [ { 'label' : 'A', 'summary' : data_out, 'details' : data_a, }, { 'label' : 'B' 'summary' : data_out_2, 'details' : data_b, },......] 对于此处列出的标签。我有另一份表格 labe

我有一个python列表,其格式如下:

original_list = [
   {
    'label'   : 'A',
    'summary' :  data_out,
    'details' :  data_a,
        },
    {
     'label'   : 'B'
     'summary' : data_out_2,
     'details' : data_b, 
        },......]
对于此处列出的标签。我有另一份表格

label_list= ['A','F','G']
我需要做的是将两个列表连接在一起,得到一个新列表,即原始列表中的标签与标签列表中的元素匹配;因此,在本例中,我将寻找以下输出:

new_list = [
   {
    'label'   : 'A',
    'summary' :  data_out,
    'details' :  data_a,
        },
    {
     'label'   : 'F'
     'summary' : data_out_6,
     'details' : data_f,},
    {
      'label'   : 'G'
     'summary' : data_out_7,
     'details' : data_g,}]

我尝试了几种不同的方法,但我对python还不熟悉,所以一直坚持这一部分。谢谢

使用列表理解的一行:

new_list = [x for x in original_list if (x['label'] in label_list)]

它迭代
原始列表的所有元素
,并将
(标签列表中的x['label']为真)的元素编译为新列表。

使用pandas的方法更干净

import pandas as pd

original_list = [
   {
    'label'   : 'A',
    'summary' : data_out,
    'details' :  data_b,
    },
    {
     'label'   : 'B',
     'summary' : data_out,
     'details' : data_b, 
     }]
label_list=['A', 'F', 'G']
d1=pd.DataFrame(original_list)
d2=pd.DataFrame(label_list,columns =['label'])
x=d1.merge(d2)
x.to_dict('records')

只要一份普通的清单就行了

new_list = [x for x in original_list if x['label'] in label_list]

请分享您的尝试。首先,我尝试提取第一个标签项,如:original_list[0],它只提供第一组元素,如:“label':“A”,“summary”,“details”。我还尝试了原始的_列表['label'],这显然是行不通的。所以我在这一点上有点卡住了。试着用下面给出的答案和我在评论中写的修改。这显然是错误的<代码>如果
语句应该出现在代码的末尾:
新列表=[x代表原始列表中的x如果(标签列表中的x['label'])
。附言:我没有投反对票。我只是对错误进行评论。谢谢你Bazingaa,它是如此的有用,这正是我想要的!很乐意帮忙!:)