我列出了一个国家和地区的地区
离。
regions = [
(region1, 300000),
(region2, 452345),
(region3, 454355),
(region4, 543535),
(region5, 2323445)
]
演习说我必须通过总结这些地区的所有人口来计算该国的人口。他们告诉我这是一个清单,但该怎么做?
答案 0 :(得分:1)
这很简单:
regions=[('region1', 300000),('region2', 452345),('region3', 454355),('region4',543535),('region5', 2323445)]
result = sum((r[1] for r in regions))
答案 1 :(得分:1)
elzell提供的答案可以解决问题,但要解决看似问题根源的问题:
regions
是一个列表,但它不是数字列表;它是一个元组列表。要获得某个地区的人口,必须先
获取该地区的人口;这是元组的第二个字段。例如,要获得'region3'
,
region3_population = regions[2][1]
这是有效的,因为region3是regions
列表的第三个元组(索引2),而population是区域信息元组的第二个元素(索引1)。
elzell给出的答案使用了一个生成器
(r[1] for r in regions)
给出每个区域元组的第二个元素(对应于总体),它产生所有种群的序列。这可以用您习惯使用sum()
的数字列表的方式求和。