我在Python中有一个列表,其中包含一个"嵌套"字典.所以我的列表如下所示:
List = [{'entry' : {'Name' : 'Smith', 'Age' : 25}}, {'entry' : {'Name' : 'Mary', 'Age' : 28}}]
Run Code Online (Sandbox Code Playgroud)
我想在不使用循环的情况下从列表中返回键"Name"的所有值.因此,如果我使用循环它可以工作,因为这适用于列表的单个条目.例如:List[0]['entry']['Name']工作并返回'Smith'.但是,我需要这样的东西List[:]['entry']['Name']应该返回一个List,其中包含条目'Smith'和'Mary'.这可能吗?
>>> map(lambda d: d['entry']['Name'], List)
['Smith', 'Mary']
Run Code Online (Sandbox Code Playgroud)
即使你没有在这里看到循环,但内部map()也遍历列表.您不能跳过遍历列表以实现您想要的.
更好的方法是使用列表理解为:
>>> [d['entry']['Name'] for d in List]
['Smith', 'Mary']
Run Code Online (Sandbox Code Playgroud)
或者,如果嵌套字典中可能存在任何键丢失,则可以将过滤器添加为:
>>> [d['entry']['Name'] for d in List if 'entry' in d and 'Name' in d['entry']]
['Smith', 'Mary']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1260 次 |
| 最近记录: |