3 回答

TA貢獻1794條經驗 獲得超8個贊
您的代碼有多個問題。.首先address是一個長度為1的列表的列表。其次,如果您要檢查地址是否包含郵政編碼,則兩個示例都可以,但是您不能將它們與其他數據分開訪問,因為它現在已作為字符串存儲。嘗試分離元素,然后將它們實際存儲為String或int。下一個問題是您無法檢查不存在的元素。如果您知道必須存在其他數據,則可以檢查列表的長度??傊?,使用這些更改:
addresses = [['123 street name', 'New Orleans', 'LA', 12345],['New Orleans', 'LA', 12345]]
for address in addresses:
if len(address) > 3:
street = address[0]
city = address[1]
city = city.lstrip()
state = address[2]
state = state.lstrip()
zip_code = address[3]
else:
street = "-"
city = address[0]
city = city.lstrip()
state = address[1]
state = state.lstrip()
zip_code = address[2]

TA貢獻1829條經驗 獲得超6個贊
你有基本的正確想法。我認為最大的問題是if語句中的條件,因為address[3]
只有3個元素時會引發異常。相反,您應該使用len()
. 如果列表的長度為3,則僅會得到城市,州和郵政編碼,并將其壓縮到正確的變量中。如果列表的長度為 4,則您將獲得所有 4 個字段。
添加回答
舉報