python - 是否可以使用列表理解从一个字典的字典创建所有成员字典键的列表?

标签 python list-comprehension python-3.5

假设我有一个 dict of dicts:

foo = {
    'category': {
        'key1': 'bar',
        'key2': 'bar',
        'key3': 'bar',
    },
    'category2': {
        'key4': 'bar',
        'key5': 'bar',
    },
}

要获取成员字典中所有键的单个列表,我有一个函数如下:

def _make_list():
    baz = list()
    for key,val in foo.items():
        baz += list(val.keys())
    return baz

生成的列表如下所示:['key1', 'key2', 'key3', 'key4', 'key5', ]

这很简单,而且有效,但我想知道:有没有一种方法可以通过单行列表理解来实现这一点?成员字典的键将始终是唯一的。

最佳答案

这是一种方法:

>>> [k for d in foo.values() for k in d]
['key1', 'key2', 'key3', 'key4', 'key5']

关于python - 是否可以使用列表理解从一个字典的字典创建所有成员字典键的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41251391/

相关文章:

Python 列表理解更改初始变量

python - Django使用 'through'关系表从模型中获取所有相关对象

python - 如果 [string] 中的 [string] 不适用于请求的网页文本

Python:均匀分布具有不同字符串长度的输出数据

python - 枚举非确定性列表的所有可能性

python - 找不到 pygraphviz

opencv - 属性错误 : MultiTracker_create() Not Found in cv2 on Raspberry Pi

python - 无法在 pymysql 中正确格式化 sql

java - MagicDraw 有 Python 接口(interface)或 API 包装器吗?

python - 使用列表推导式,将字符串中的所有元音转换为大写?