为了账号安全,请及时绑定邮箱和手机立即绑定

python中有什么方法可以从dict列表中获取特定的值列表吗?

python中有什么方法可以从dict列表中获取特定的值列表吗?

撒科打诨 2021-12-29 20:08:37
我有一个从 excel 导入的变量和列表,如下所示:cities= [{'City': 'Buenos Aires',  'Country': 'Argentina',  'Population': 2891000,  'Area': 4758}, {'City': 'Toronto',  'Country': 'Canada',  'Population': 2800000,  'Area': 2731571}, {'City': 'Pyeongchang',  'Country': 'South Korea',  'Population': 2581000,  'Area': 3194}, {'City': 'Marakesh', 'Country': 'Morocco', 'Population': 928850, 'Area': 200}, {'City': 'Albuquerque',  'Country': 'New Mexico',  'Population': 559277,  'Area': 491}, {'City': 'Los Cabos',  'Country': 'Mexico',  'Population': 287651,  'Area': 3750}, {'City': 'Greenville', 'Country': 'USA', 'Population': 84554, 'Area': 68}, {'City': 'Archipelago Sea',  'Country': 'Finland',  'Population': 60000,  'Area': 8300}, {'City': 'Walla Walla Valley',  'Country': 'USA',  'Population': 32237,  'Area': 33}, {'City': 'Salina Island', 'Country': 'Italy', 'Population': 4000, 'Area': 27}, {'City': 'Solta', 'Country': 'Croatia', 'Population': 1700, 'Area': 59}, {'City': 'Iguazu Falls',  'Country': 'Argentina',  'Population': 0,  'Area': 672}]我只想要每个城市的“人口”值。列出每个城市“人口”的价值的最有效或最简单的方法是什么?下面是我想出的代码,但效率低下。City_Population = [cities[0]['Population'], cities[1]['Population'], cities[2]['Population']]我目前正在学习 Python,任何建议都会有所帮助!谢谢!
查看完整描述

2 回答

?
饮歌长啸

TA贡献1951条经验 获得超3个赞

使用列表理解:

print([city['Population'] for city in cities])

输出

[2891000, 2800000, 2581000, 928850, 559277, 287651, 84554, 60000, 32237, 4000, 1700, 0]

编辑

假设populationa 中没有city

print([city['Population'] for city in cities if 'Population' in city])

OUTPUT(从列表中的几个城市中删除人口):

[2891000, 2800000, 2581000, 928850, 287651, 84554, 32237, 4000]


查看完整回答
反对 回复 2021-12-29
?
森林海

TA贡献2011条经验 获得超2个赞

使用 getter,这样如果其中一些未定义,您将拥有空/无值。

populations = [city.get('Population') for city in cities]

如果您不想要空值:

populations = [pop for pop in populations if pop is not None]


查看完整回答
反对 回复 2021-12-29
  • 2 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信