亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python isinstance無法與if語句一起使用。

Python isinstance無法與if語句一起使用。

幕布斯6054654 2021-05-30 20:10:54
我有一個地址清單。一些地址有街道、城市、州、郵政編碼,而其他地址只有城市、州和郵政編碼。我做了一個for循環,將每個元素放入一個單獨的變量中。問題是我沒有得到正確的輸出,所以我用放了一條if語句isinstance(address[3], int],這樣做是為了檢查第4個元素是否在那里然后執行代碼,但是它不能正常工作。我將在下面發布內容以顯示我在做什么,并讓我知道我在哪里搞砸了。第一個地址有一條街道,第二個地址沒有一條街道,因此我想用“-”代替地址。address = [['123 street name, New Orleans, LA, 12345'],['New Orleans, LA, 12345']]if isinstance(address[3], int):    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]
查看完整描述

3 回答

?
慕田峪9158850

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]


查看完整回答
反對 回復 2021-06-01
?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

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


查看完整回答
反對 回復 2021-06-01
  • 3 回答
  • 0 關注
  • 376 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號