如何将字典列表转换为列表列表

MOH*_*HRE 2 python

我有一个dicts列表,我想在dicts中单独列出每个键.这些词的关键是相同的.这是一个例子如下:

转换这个:

myList = [{'a':0,'b':2},{'a':1,'b':3}]
Run Code Online (Sandbox Code Playgroud)

至:

newList = [[0,1],[2,3]]
Run Code Online (Sandbox Code Playgroud)

Kas*_*mvd 7

您可以dict.values()在列表推导中使用以获取值,然后使用zip以获取列:

>>> zip(*[d.values() for d in myList])
[(0, 1), (2, 3)]
Run Code Online (Sandbox Code Playgroud)

如果你想要列表清单:

>>> [list(col) for col in zip(*[d.values() for d in myList])]
[[0, 1], [2, 3]]
Run Code Online (Sandbox Code Playgroud)

  • @VigneshKalai:这很容易转换,可能不是一个硬性要求. (2认同)

MOH*_*HRE 6

我发现这个网站使用自爆代码: 如何将字典列表转换为 Python 中的列表列表

[[row[key] for row in myList] for key in keylist]
Run Code Online (Sandbox Code Playgroud)

测试:

def bycol_decl(lod, keylist):
    return  [[row[key] for row in lod] for key in keylist]

if __name__ == "__main__": 
    lod = [
        {'a':1, 'b':2, 'c':3},
        {'a':4, 'b':5, 'c':6},
        {'a':7, 'b':8, 'c':9},
        ]
    keylist = ['a', 'b', 'c']
    print bycol_decl(lod, keylist)
Run Code Online (Sandbox Code Playgroud)

结果:

[[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Run Code Online (Sandbox Code Playgroud)