[英]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.