python - 获取python字典列表中某个键的所有值

标签 python dictionary

我有一个 Python 列表,其中包含一个“嵌套”字典。所以我的列表如下所示:

List = [{'entry' : {'Name' : 'Smith', 'Age' : 25}}, {'entry' : {'Name' : 'Mary', 'Age' : 28}}]

我想在不使用循环的情况下从我的列表中返回键“名称”的所有值。因此,如果我使用循环,它会起作用,因为它适用于列表的单个条目。例如:List[0]['entry']['Name'] 起作用并返回“Smith”。但是,我需要像 List[:]['entry']['Name'] 这样的东西,它应该返回一个包含条目“Smith”和“Mary”的列表。这可能吗?

最佳答案

您可以使用 lambda expressionmap()作为:

>>> map(lambda d: d['entry']['Name'], List)
['Smith', 'Mary']

即使您在这里看不到循环,但在内部 map() 也会遍历列表。您不能跳过对列表的迭代以实现您想要的结果。

更好的方法是使用列表理解作为:

>>> [d['entry']['Name'] for d in List]
['Smith', 'Mary']

或者,如果嵌套字典中可能缺少任何键,您可以将过滤器添加为:

>>> [d['entry']['Name'] for d in List if 'entry' in d and 'Name' in d['entry']]
['Smith', 'Mary']

关于python - 获取python字典列表中某个键的所有值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40790395/

相关文章:

python - 使用 ModelForm 的 Django 联系表单

python - 在线程中运行 flask-socketio

python - 修改html文件中所有本地链接

python - 无法在 Lubuntu 上安装任何东西

python - python 3.7中的无序字典

python - 为什么这个空字典会破坏共享引用?

python - 如何在不使用正则表达式的情况下删除 -> 之后的字符

python - 如何在 Python 中打印字典

java - 如何在 Google map 上显示地点自动完成结果

python - 为什么字典看起来是颠倒的?