简单python的快速帮助(学习列表)
我正在学习如何使用循环,并且正在做这个练习程序。然而,我唯一遇到一些困难的是,对于每个输入,只正确地打印列表一次。这是我的密码:简单python的快速帮助(学习列表),python,Python,我正在学习如何使用循环,并且正在做这个练习程序。然而,我唯一遇到一些困难的是,对于每个输入,只正确地打印列表一次。这是我的密码: country_list=[] emission_list=[] capita_list=[] total=0 end_loop=False together=[] while True: country=raw_input("Enter country or (done to end): ") if country=="done":
country_list=[]
emission_list=[]
capita_list=[]
total=0
end_loop=False
together=[]
while True:
country=raw_input("Enter country or (done to end): ")
if country=="done":
break
else:
emission=input("Enter emissions: ")
capita=input("Enter capita: ")
country_list.append(country)
emission_list.append(emission)
capita_list.append(capita)
total+=1
for x in range(len(country_list)):
for y in range(len(emission_list)):
for z in range(len(capita_list)):
end_loop=True
print country_list[x]+": Emission="+str(emission_list[y]),"and Capita="+str(capita_list[z])
我正在输入:
Enter country or (done to end): Testcase
Enter emissions: 1
Enter capita: 2
Enter country or (done to end): Testcase2
Enter emissions: 3
Enter capita: 4
Enter country or (done to end): done
这是我得到的输出:
Testcase: Emission=1 and Capita=2
Testcase: Emission=1 and Capita=4
Testcase: Emission=3 and Capita=2
Testcase: Emission=3 and Capita=4
Testcase2: Emission=1 and Capita=2
Testcase2: Emission=1 and Capita=4
Testcase2: Emission=3 and Capita=2
Testcase2: Emission=3 and Capita=4
它正在打印所有可能的排放量和人均排放量的组合,但我只希望它打印我输入的每个国家的排放量/人均排放量。有人知道如何解决这个问题吗?不要这样做:
for x in range(len(country_list)):
for y in range(len(emission_list)):
for z in range(len(capita_list)):
print country_list[x]+": Emission="+str(emission_list[y]),"and Capita="+str(capita_list[z])
这样做:
for x in range(len(country_list)):
print country_list[x]+": Emission="+str(emission_list[x]),"and Capita="+str(capita_list[x])
注意:如果您创建一个具有一个国家名称、一个排放量和一个人均的类,那么您的代码的结构将更有意义。这样的错误是不可能的,因为无论如何,您只有一个要迭代的对象列表。而不是这样做:
for x in range(len(country_list)):
for y in range(len(emission_list)):
for z in range(len(capita_list)):
print country_list[x]+": Emission="+str(emission_list[y]),"and Capita="+str(capita_list[z])
这样做:
for x in range(len(country_list)):
print country_list[x]+": Emission="+str(emission_list[x]),"and Capita="+str(capita_list[x])
注意:如果您创建一个具有一个国家名称、一个排放量和一个人均的类,那么您的代码的结构将更有意义。这样的错误是不可能的,因为无论如何,您只有一个对象列表可以迭代。这是一个学习练习,但执行此任务的python方法是使用 实际上,您应该以这种方式存储结果(一个三元组的列表),而不是用三个列表压缩在一起
cecs = []
while True:
country = raw_input("Enter country (or nothing to end): ").strip()
if not country:
break
emission = input("Enter emissions: ").strip()
capita = input("Enter capita: ").strip()
cecs.append((country, emission, capita))
# total = len(cecs)
for cec in cecs:
print "{}: Emission={} and Capita={}".format(*cec)
作为一个学习练习,这是可以的,但是执行此任务的python方法是使用 实际上,您应该以这种方式存储结果(一个三元组的列表),而不是用三个列表压缩在一起
cecs = []
while True:
country = raw_input("Enter country (or nothing to end): ").strip()
if not country:
break
emission = input("Enter emissions: ").strip()
capita = input("Enter capita: ").strip()
cecs.append((country, emission, capita))
# total = len(cecs)
for cec in cecs:
print "{}: Emission={} and Capita={}".format(*cec)
我宁愿用字典来代替。它看起来像这样:
countries = {}
while True:
inp = input("Enter country or (done to end): ")
if inp == 'done':
break;
countries[inp] = {'emission': input("Enter emissions: ")}
countries[inp]['capita'] = input("Enter capita: ")
for i in countries:
print(i, 'Emission:', countries[i]['emission'],
'and Capita', countries[i]['capita'])
输入:
Enter country or (done to end): test
Enter emissions: 1
Enter capita: 2
Enter country or (done to end): test2
Enter emissions: 3
Enter capita: 4
Enter country or (done to end): done
输出:
test Emission: 1 and Capita 2
test2 Emission: 3 and Capita 4
最后,字典看起来是这样的:
{'test': {'emission': '1', 'capita': '2'}, 'test2': {'emission': '3', 'capita': '4'}}
我宁愿用字典来代替。它看起来像这样:
countries = {}
while True:
inp = input("Enter country or (done to end): ")
if inp == 'done':
break;
countries[inp] = {'emission': input("Enter emissions: ")}
countries[inp]['capita'] = input("Enter capita: ")
for i in countries:
print(i, 'Emission:', countries[i]['emission'],
'and Capita', countries[i]['capita'])
输入:
Enter country or (done to end): test
Enter emissions: 1
Enter capita: 2
Enter country or (done to end): test2
Enter emissions: 3
Enter capita: 4
Enter country or (done to end): done
输出:
test Emission: 1 and Capita 2
test2 Emission: 3 and Capita 4
最后,字典看起来是这样的:
{'test': {'emission': '1', 'capita': '2'}, 'test2': {'emission': '3', 'capita': '4'}}
另外,你知道我如何将我输入的所有国家的所有排放量相加吗?还有,你知道我如何将我输入的所有国家的所有排放量相加吗?