這是我在名為adm2_geonames的串列中遍歷復雜嵌套字典的內容。然后我有一個 csv 檔案,line[1]需要在adm2_geonames中進行搜索。一旦找到,我想打破adm2_geonames的回圈,即從開始
for dic in adm2_geonames:并將控制權傳遞for line in csvReader:給下一個關鍵字,直到讀取 csv 中的所有內容。我對設定 break 陳述句的范圍感到困惑。我也嘗試為每個內部回圈放置多個 break 陳述句。看來,不是正確的做法。請我是初學者python學習者,所以如果我的問題很幼稚,請耐心等待。
coords = []
with open('ADM2_hits.csv') as csvFile:
csvReader = csv.reader(csvFile)
next(csvReader)
for line in csvReader:
keyword = line[1]
for dic in adm2_geonames:
for key in dic:
if(key == "geonames"):
for x in dic[key]:
if(keyword == x['name']):
line.append(x['lat'])
line.append(x['lng'])
coords.append(line)
break
print(coords)
uj5u.com熱心網友回復:
一種方法是使用一個else:塊來捕獲內部回圈沒有被破壞的情況(在這種情況下你想要),如果還沒有繼續它continue,然后用 abreak來打破外部回圈:else
coords = []
with open('ADM2_hits.csv') as csvFile:
csvReader = csv.reader(csvFile)
next(csvReader)
for line in csvReader:
keyword = line[1]
for dic in adm2_geonames:
for x in dic["geonames"]:
if(keyword == x['name']):
line.append(x['lat'])
line.append(x['lng'])
coords.append(line)
break
else:
continue
break
print(coords)
dic["geonames"]請注意,您可以通過直接進入而不是遍歷整個字典來消除一些內部回圈;字典的全部意義在于,您可以通過其鍵直接跳轉到給定條目,而不必反復搜索整個內容。
uj5u.com熱心網友回復:
首先,您不需要所有這些回圈,這意味著您根本不需要break。
coords = []
with open('ADM2_hits.csv') as csvFile:
csvReader = csv.reader(csvFile)
next(csvReader)
for line in csvReader:
keyword = line[1]
for dic in adm2_geonames:
try:
line.extend(dic['geonames']['name'][k] for k in ['lat', 'long'])
coords.append(line)
except KeyError:
continue
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/447818.html
