下面有一个dict列表,每个dict包含两个键。
original_list = [
{
'label': 'First Name',
'value': 'Leo',
},
{
'label': 'Last Name',
'value': 'Lee',
},
{
'label': 'Gender',
'value': 'Male',
},
{
'label': 'Age',
'value': 35,
},
{
'label': 'Telephone',
'value': '13788995566',
}
]
我想在dict中只有一个键('标签')获得一个新的dict列表。
# expecting output like below
new_list = [
{
'label': 'First Name'
},
{
'label': 'Last Name'
},
{
'label': 'Gender'
},
{
'label': 'Age'
},
{
'label': 'Telephone'
}
]
我知道一种方法可以解决。
new_list = [{'label': d['label']} for d in original_list]
print(new_list)
有什么方法更方便吗?
如果original_list数据在一个pandas DataFrame中,如何获得相同的结果?
答案 0 :(得分:1)
如果输入为DataFrame
,则按子集[[]]
选择输出列,并使用参数orient='records'
调用to_dict
:
df = pd.DataFrame(original_list)
print (df)
label value
0 First Name Leo
1 Last Name Lee
2 Gender Male
3 Age 35
4 Telephone 13788995566
print (df[['label']].to_dict(orient='records'))
[{'label': 'First Name'},
{'label': 'Last Name'},
{'label': 'Gender'},
{'label': 'Age'},
{'label': 'Telephone'}]
答案 1 :(得分:1)
就像你的一样!列表理解,甚至有点长:)但绝对有一种方法:)
[{e: i} for d in original_list for e,i in d.items() if e =='label']