Python 如何使用听写理解来拆分列表?

Python 如何使用听写理解来拆分列表?,python,python-3.x,Python,Python 3.x,我目前有一个dict,格式如下: data = {"var1":"600103", "var2":[{"a":"1","b":"2"}]} 我希望输出为: op = {"var1":"600103","var2[0]":{"a":"1","b":"2"}} 我目前正在使用循环来手动循环。我想知道是否有一种更符合python的方法来实现这一点。如果这不是您已经在做的,您可以通过对列表中的值使用dict理解来消除嵌套循环的需要 data = {"var1":"600103", "var2":[{

我目前有一个dict,格式如下:

data = {"var1":"600103", "var2":[{"a":"1","b":"2"}]}
我希望输出为:

op = {"var1":"600103","var2[0]":{"a":"1","b":"2"}}

我目前正在使用循环来手动循环。我想知道是否有一种更符合python的方法来实现这一点。

如果这不是您已经在做的,您可以通过对列表中的值使用dict理解来消除嵌套循环的需要

data = {"var1":"600103", "var2":[{"a":"1","b":"2"}, {"a":"22","b":"555"}]}

op = {}
for k in data:
    if not isinstance(data[k], list): 
        op[k] = data[k]
    else:
        op.update({k + '[{}]'.format(i) : data[k][i] for i in range(len(data[k])) })
并且,您的输出将如下所示:

{'var1': '600103', 'var2[1]': {'a': '22', 'b': '555'}, 'var2[0]': {'a': '1', 'b': '2'}}

如果这不是您已经在做的事情,您可以通过对列表中的值使用dict理解来消除嵌套循环的需要

data = {"var1":"600103", "var2":[{"a":"1","b":"2"}, {"a":"22","b":"555"}]}

op = {}
for k in data:
    if not isinstance(data[k], list): 
        op[k] = data[k]
    else:
        op.update({k + '[{}]'.format(i) : data[k][i] for i in range(len(data[k])) })
并且,您的输出将如下所示:

{'var1': '600103', 'var2[1]': {'a': '22', 'b': '555'}, 'var2[0]': {'a': '1', 'b': '2'}}

我不知道它是否很像蟒蛇,但我确信它很难阅读:S 对不起,只是玩…;)

输出:

{'var1': '600103',
 'var2[0]': {'a': '1', 'b': '2'},
 'var2[1]': {'a': '3', 'b': '4'},
 'var2[2]': {'a': '5', 'b': '6'},
 'var2[3]': {'a': '7', 'b': '8'},
 'var3': '600103'}

我不知道它是否很像蟒蛇,但我确信它很难阅读:S 对不起,只是玩…;)

输出:

{'var1': '600103',
 'var2[0]': {'a': '1', 'b': '2'},
 'var2[1]': {'a': '3', 'b': '4'},
 'var2[2]': {'a': '5', 'b': '6'},
 'var2[3]': {'a': '7', 'b': '8'},
 'var3': '600103'}

你能解释一下变异这把钥匙的原因吗?一般来说,你将如何应用这种变异?还有,名单在哪里?你在分裂什么?一个在服务器上工作的人搞砸了我们目前使用的整个API。我在修数据库的时候试着修补一下。var2字段将有更多条目。所以数据也可以是data={“var1”:“600103”,“var2”:[{“a”:“1”,“b”:“2”},{“a”:“22”,“b”:“555}]},在这种情况下,我们需要“var[1]“在密钥列表中。恐怕没有什么比嵌套循环更像python的了。伙计,我很害怕:|你确实需要嵌套循环,但这可以让它更像python。你能解释一下改变这个密钥背后的原理吗?”?一般来说,你将如何应用这种变异?还有,名单在哪里?你在分裂什么?一个在服务器上工作的人搞砸了我们目前使用的整个API。我在修数据库的时候试着修补一下。var2字段将有更多条目。所以数据也可以是data={“var1”:“600103”,“var2”:[{“a”:“1”,“b”:“2”},{“a”:“22”,“b”:“555}]}在这种情况下,我们需要在键列表中使用“var[1]”。恐怕没有什么比嵌套循环更像python的了。伙计,我担心的是:|你确实需要嵌套循环,但这可以变得更像python的。是的,不用担心。^是的,不用担心^^