![](/img/trans.png)
[英]Transform list of dictionary with lists of dictionary to dataframe in an optimal way - yahoo finance
[英]Easier way to transform multiple lists into a dictionary?
现在,我有一本非常笨重的字典:
input_data = {'names': 'Elizabeth,Emily,Grant', 'titles': 'Sales,Accounting,Operations'}
nameList = input_data['names'].split(',')
titleList = input_data['titles'].split(',')
d1 = dict()
d2 = dict()
for val in nameList:
d1.setdefault('Name', []).append(val)
for val in titleList:
d2.setdefault('Title', []).append(val)
fullDict = dict(d1, **d2)
我相信有更好的方法来掩盖这一点:
{'names': 'Elizabeth,Emily,Grant', 'titles': 'Sales,Accounting,Operations'}
进入这个:
{'Name': ['Elizabeth', 'Emily', 'Grant'],
'Title': ['Sales', 'Accounting', 'Operations']}
这个简单的字典理解似乎产生了你想要的结果。
{x: y.split(',') for x, y in input_data.items()}
如果名称部分也很重要,那么我认为这应该可行。
{x.title()[:-1] if x[-1] == 's' else x.title(): y.split(',') for x, y in input_data.items()}
所以你要完成两件事:拆分原始字典中的值,并重命名原始字典中的键。 您可以就地完成所有操作,而不是创建新字典。
input_data = {'names': 'Elizabeth,Emily,Grant', 'titles': 'Sales,Accounting,Operations'}
input_data['Name'] = input_data['names'].split(',')
input_data['Title'] = input_data['titles'].split(',')
del input_data['names'], input_data['titles']
print(input_data)
返回 output:
{'Name': ['Elizabeth', 'Emily', 'Grant'], 'Title': ['Sales', 'Accounting', 'Operations']}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.