如何操作字典列表

时间:2016-09-06 13:34:10

标签: python list dictionary

嗨,我有一个有线的情况,我想操纵一个字典键值,列表列表包括字典这里是我有数据的形成

my_list=[{'data': [[{'name': [0.0, 0.0]}], [{'name': [False, False]}], [{'name': [u'xm', u'xc']}]],'name': u'new',}]

我想要做的是将其转换为:

my_list=[{'data': [[{'name': 0.0},{'name': 0.0}], [{'name': False},{'name': False}], [{'name': u'xm'},{'name': u'xc'}]],'name': u'new',}]

我到目前为止所尝试的是:

new_lists = []
for new in x[0]['data']:
    for new_list in new:
        for g in new_list['name']:
            new_list['name'][new_list['name'].index(g)] = {'name': g}
for stay in x[0]['data']:
    new_lists.append(stay[0]['name'])
x[0]['data']=new_lists
print(x)
我可以在这里得到一些帮助吗?

1 个答案:

答案 0 :(得分:0)

这里我们去一个与键值无关的版本:

my_list=[{'data': [[{'foo': [0.0, 0.0]}], [{'bar': [False, False]}], [{'pop': [u'xm', u'xc']}]]}]

buff = []
for elt in my_list[0]['data']:
    a = []
    k = elt[0].keys()[0]
    val = elt[0][k]
    for i in val:
        a.append({k: i})
    buff.append(a)

output = [{'data': buff}]

结果:

[{'data': [[{'foo': 0.0}, {'foo': 0.0}], [{'bar': False}, {'bar': False}], [{'pop': u'xm'}, {'pop': u'xc'}]]}]