在 python 中具有可理解性的字典列表

sup*_*ind 8 python dictionary list-comprehension

我有以下字典列表:

    ld=[{'a':10,'b':20},{'p':10,'u':100}]
Run Code Online (Sandbox Code Playgroud)

我想写一个这样的理解:

    [ (k,v) for k,v in [ d.items() for d in ld ] ]
Run Code Online (Sandbox Code Playgroud)

基本上我想遍历列表中的字典并获取每个字典的键和值并做某事。

示例:此示例的一个输出示例是另一个没有某些键的字典列表:

        ld=[{'a':10,'b':20},{'p':10,'u':100}]
        new_ld=[{'a':10},{'p':10}]
Run Code Online (Sandbox Code Playgroud)

然而,上述理解是不正确的。任何帮助,将不胜感激。

Irs*_*hat 8

正确的列表理解是 [[(k,v) for k,v in d.items()] for d in ld]

演示:

>>> ld = [{'a': 10, 'b': 20}, {'p': 10, 'u': 100}]
>>> [[(k,v) for k,v in d.items()] for d in ld]
[[('a', 10), ('b', 20)], [('p', 10), ('u', 100)]]
>>> [[(k,v) for k,v in d.items() if k not in ['b','u']] for d in ld]
[[('a', 10)], [('p', 10)]]
Run Code Online (Sandbox Code Playgroud)