用python单独逗号

时间:2017-05-12 18:26:56

标签: python python-3.x

我正在尝试将我的单词列表分开用于学校项目, 列表是国家:人口

China:1382323332
India:1326801576
USA:324118787
Indonesia:260581100

依旧......

我已经完成了这个代码警告它的杂乱并且有一些重复:

Data = open("CountryList.txt","r")
DATA = Data.readlines()
file = "CountryList.txt"
Test = open(file,'r')
for x in range(0,len(DATA)):
   for lines in Test.readlines():
       Country,Population = lines.split(':')
print(Country)
print(Population)

结果是:

Egypt
93383574
Egypt
93383574
Egypt
93383574

再增加13倍

我希望将国家列入国家/地区列表,将人口列入人口列表,结果将是

USA 
324118787
China
1382323332

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:3)

您需要将print语句放在for循环体中。你也做得太多了。请参阅精简代码。

with open("CountryList.txt","r") as fin:
    for line in fin:
        Country,Population = line.split(':')
        print(Country)
        print(Population)

从上面可以看出:您可以直接在文件上进行迭代,而无需使用.readlines()

另请注意,with语句会自动关闭文件,因此您不需要fin.close()

答案 1 :(得分:1)

缩进你的两个print调用,使它们最里面的循环中,与它们被分配的行的嵌套级别相同。目前,您让最里面的循环运行到最后,分配并重新分配CountryPopulation一遍又一遍,但仅在结尾您是否打印它们的值。

然后,设置修剪你的循环结构。您只需要一个循环,而不是两个嵌套循环。您只需要打开一次文件并读取一次数据。

答案 2 :(得分:0)

可以看出,你一次又一次地循环使用相同的值,并且为了从单个数据中读取数据,你不需要嵌套循环,一个循环应该足以得到你真正想要的,也许就像此,

country = []
population = []
with open("lolla.txt", 'r') as fp:
    for line in fp.readlines():
        c, p = line.split(':')
        country.append(c)
        population.append(p)

print country
print population

print zip(country, population)

并且在您的代码Country中,Population只是两个变量,无论您的for循环可能迭代多少次,它们最终都只会存储最后初始化的值。

相关问题