我写了一个程序,显示哪些国家在人类发展方面被划分为“非常高”、“高”、“中”或“低”。国家分类如下:
结果应该如下所示:
Country HDI score
Japan 0.903
Finland 0.895
Qatar 0.856
Lebanon 0.763
Armenia 0.743
Iraq 0.649
Pakistan 0.550
Djibouti 0.473
Cameroon 0.518
我写了这样的代码:
Country= ["Japan","Finland","Qatar","Lebanon","Armenia","Iraq","Pakistan",
"Djibouti","Cameroon"]
Country[0]=0.903
Country[1]=0.895
Country[2]=0.856
Country[3]=0.763
Country[4]=0.743
Country[5]=0.649
Country[6]=0.550
Country[7]=0.473
Country[8]=0.518
for Country in Country:
if Country>0.76:
print [Country, "Very High"]
elif 0.76>Country>0.51:
print [Country,"High"]
elif 0.51>Country>0.26:
print [Country,"Medium"]
elif Country < 0.26:
print [Country,"Low"]
但该代码的问题在于,它显示的是人类发展指数和排名,而不是国家名称和排名,如下所示:
[0.903, 'Very High']
[0.895, 'Very High']
[0.856, 'Very High']
[0.763, 'Very High']
[0.743, 'High']
[0.649, 'High']
[0.55, 'High']
[0.473, 'Medium']
[0.518, 'High']
我不明白我在这里错过了什么,为什么它打印人类发展指数,而不是国家的名称相当于它,虽然我介绍了国家的名称作为第一件事
这里好像出了点问题
您正在使用
for Country in Country
。。陈述……(我很困惑)。无论如何,请使用国家/地区作为列表名:你的清单和口述也几乎是混合的。让我们坚持列表+元组
尝试:
然后你会得到:
好好享受
您正在使用
list
来定义国家及其HDI,但在输入HDI值时,您正在修改列表,而不是将值附加到每个国家让我们快速了解一下您的几个早期步骤:
如果我定义了它,然后在Python shell中打印出来:
一切看起来都很好
但是如果我运行你的下一行代码:
我们再把它打印出来:
我们刚刚用
0.903
替换了Japan
,因为您在执行Country[0]
时替换了Country
列表中的原始值因此,你真正想要的是把每个国家与各自的人类发展指数联系起来。一种方法是使用dictionary,它将一个某物与另一个某物相关联
使用字典的基本语法是:
然后可以按键对其进行迭代,并使用值。下面是适合于使用字典的代码,它使用字典的键和值对字典进行迭代
输出如下所示:
你会注意到订单与原来的清单不一样。普通词典不保持插入顺序
注意我做的一些风格上的事情:
Country
所做的那样或者
相关问题 更多 >
编程相关推荐