python - 使用 for 循环分配列表项会导致无限循环

标签 python python-3.x for-loop counter infinite-loop

我有一个包含美国所有邮政编码及其纬度和经度的文件。该文件的格式为 ZIP,LAT, LONG\n

我计划将它们保存到数据库中,因此我逐字循环遍历文件并设置一个 counter 变量。如果 counter == 1 则应将值分配给 zip_codes[] 如果 counter == 2 将值分配给 latitude[ ] 并且 if counter == 3 将值分配给 longitude[],但是当我运行以下代码来测试它是否正确添加了邮政编码值时它变成了无限循环,我必须强制退出 IDLE

(文件可在here查看)

zip_code_file = open('zip_codes.txt')
zip_codes=[]
latitude=[]
longitude = []
counter = 1
for s in zip_code_file.read().split(','):
    s = s.strip()
    if counter ==1: 
        zip_codes.append(s)
        counter = counter +1
    elif counter == 2:
        latitude.append(s)
        counter = counter+1
    elif counter == 3:
        longitude.append(s)
        counter = 1
print(zip_codes)

有人知道这是怎么回事吗?

最佳答案

你需要少一点循环:

zip_code_file = open('zip_codes.txt')
zip_codes = []
latitude = []
longitude = []
for line in zip_code_file:
    zipcode, lat, lng = line.strip().split(',')
    zip_codes.append(zipcode)
    latitude.append(lat)
    longitude.append(lng)
print(zip_codes)

关于python - 使用 for 循环分配列表项会导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51737192/

相关文章:

Python/Django 根据字符串是否存在连接字符串

android - 如何使用 Kivy 检测操作系统/外围设备?

python-3.x - 在 python 3.7 中使用维基百科 API 时出现证书错误

python - 将输入存储在字典中以添加到主列表中

c++ - 下面的c++程序有没有代码优化方法

python - 我应该如何为一位/两位数字序列编写 python 正则表达式?

python - unicode解码错误: how to skip invalid characters

java - 在迭代循环中使用字节是否更有效?

Python 对称对数据类型

c++ - 在不同位置渲染相同 Sprite 的数组