簡體   English   中英

使用for循環分配列表項會導致無限循環

[英]Assigning list items with for loop causing infinite loop

我在美國有一個包含所有郵政編碼的文件,其緯度和經度。 該文件的格式為ZIP,LAT, LONG\\n

我計划將這些保存到數據庫中,因此我逐字循環遍歷文件並設置counter變量。 如果counter == 1它應該將值分配給zip_codes[]如果counter == 2將值賦給latitude[]並且如果counter == 3將值賦給longitude[] ,但是當我運行以下代碼來測試時如果它正確添加了郵政編碼值,它就變成了一個無限循環,我必須強制退出IDLE

(文件可以在這里查看

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)

應使用csv模塊處理逗號分隔值的文件

import csv

with open('zip_codes.txt') as f:
    r = csv.reader(f)
    next(r)  # skip the header
    zip_codes, latitudes, longitudes = zip(*r)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM