gpt4 book ai didi

python - 为什么要指定索引范围以便在 Python 中编写 while 循环列表?

转载 作者:行者123 更新时间:2023-12-02 11:31:34 25 4
gpt4 key购买 nike

mean_temp.txt = 
city,country,month ave: highest high,month ave: lowest low
Beijing,China,30.9,-8.4
Cairo,Egypt,34.7,1.2
London,UK,23.5,2.1
Nairobi,Kenya,26.3,10.5
New York City,USA,28.9,-2.8
Sydney,Australia,26.5,8.7
Tokyo,Japan,30.8,0.9

mean_temp = open('mean_temp.txt', 'r')
city_temp = mean_temp.readline().split(",")

while city_temp[0]:
print(city_temp[0], city_temp[2])
city_temp = mean_temp.readline().split(",")

mean_temp.close()

任务是打印每个城市的最高气温(例如:北京,30.9)。

我解决这个问题的第一次尝试是简单地将 while 循环编写为“while city_temp:”。我仍然不太明白为什么我需要为 while 循环指定索引以避免出现“索引外”错误。为什么我需要写“while city_temp[0]:”?我认为 while 循环一旦到达列表末尾就会自然结束... :( 希望并感谢对此的帮助,谢谢!

最佳答案

这样 while 循环将在到达文件末尾时结束,readline() 将返回 ''并通过 split(',') 拆分为 [''],此时索引 0'' 并计算为 False,因此 while 循环将结束。

如果您希望循环在文件末尾更“自然”地结束,建议使用文件对象作为迭代器,这样您就可以使用 for 循环来迭代它:

with open('mean_temp.txt', 'r') as mean_temp:
for line in mean_temp:
city, _, temp = line.split(',')
print(city, temp)

关于python - 为什么要指定索引范围以便在 Python 中编写 while 循环列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52547143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com