我有一个 Python 列表,其中包含一个“嵌套”字典。所以我的列表如下所示:
List = [{'entry' : {'Name' : 'Smith', 'Age' : 25}}, {'entry' : {'Name' : 'Mary', 'Age' : 28}}]
我想在不使用循环的情况下从我的列表中返回键“名称”的所有值。因此,如果我使用循环,它会起作用,因为它适用于列表的单个条目。例如:List[0]['entry']['Name']
起作用并返回“Smith”。但是,我需要像 List[:]['entry']['Name']
这样的东西,它应该返回一个包含条目“Smith”和“Mary”的列表。这可能吗?
最佳答案
您可以使用 lambda expression与 map()
作为:
>>> 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/