我有以下格式的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']
我需要做的是将两个列表连接在一起,得到一个新列表,该列表与原始列表中的标签与label_list中的元素相匹配;所以在这种情况下,我要寻找的输出是:
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的新手,并且停留在这一部分。谢谢!
答案 0 :(得分:1)
使用熊猫更清洁的方法
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')
答案 1 :(得分:1)
正常的列表理解就能胜任
new_list = [x for x in original_list if x['label'] in label_list]
答案 2 :(得分:-1)
使用列表推导的单线:
new_list = [x for x in original_list if (x['label'] in label_list)]
迭代original_list
的所有元素,并将(x['label'] in label_list)
为真的元素编译到新列表中。