【发布时间】:2019-05-05 09:23:35
【问题描述】:
我是编程新手,目前正在学习 CSC 110 课程。我们的任务是创建一堆函数,用给定的一些数据来做各种各样的事情。我已将所有这些数据放入字典中,但在从中获取我想要的数据时遇到了一些麻烦。
这是我的问题:
我有一本字典,其中存储了一堆国家,然后是一个包含其人口和 GDP 的列表。像这样格式化
{'country': [population, GDP], ...}
我的任务是循环遍历并找到人口或 GDP 最高的国家,然后打印:
'The country with the highest population is ' + highCountry+\
' with a population of ' + format(highPop, ',.0f')+'.')
为了做到这一点,我编写了这个函数(这个函数专门针对最高人口,但它们看起来都差不多)。
def highestPop(worldInfo):
highPop = worldInfo[next(iter(worldInfo))][0] #Grabs first countries Population
highCountry = next(iter(worldInfo))#Grabs first country in worldInfo
for k,v in worldInfo.items():
if v[0] > highPop:
highPop = v[0]
highCountry = k
return highPop,highCountry
虽然这对我有用,但我认为有一种更简单的方法可以做到这一点。我也不是 100% 确定 [next(iter(worldInfo))] 是如何工作的。这只是获取它看到的第一个值吗?
提前感谢您的帮助!
编辑:对不起,我想我不清楚。我需要传递国家人口以及国家名称。所以我可以在我的主要功能中打印它们。
【问题讨论】:
-
有一个函数
max()可以接受一些可迭代的东西(比如dict项目)。如果您将key函数作为提取所需值的参数(这里:人口),它将返回您想要的项目。
标签: python dictionary computer-science