[問題] list錯誤訊息

看板Python作者時間7年前 (2018/05/31 00:26), 7年前編輯推噓2(206)
留言8則, 5人參與, 7年前最新討論串1/1
各位大大好: 小弟最近剛開始學寫python 遇到一點小問題 希望可以在此獲得協助 dic={'A':'10','J':'18','S':'26', 'B':'11','K':'19','T':'27', 'C':'12','L':'20','U':'28', 'D':'13','M':'21','V':'29', 'E':'14','N':'22','W':'32', 'F':'15','O':'35','X':'30', 'G':'16','P':'23','Y':'31', 'H':'17','Q':'24','Z':'33', 'I':'34','R':'25'} list1=input("") if list1[0] in dic: list2=list1.replace(list1[0],dic[list1[0]]) for k in range(len(list1)): list2[k]=int(list2[k]) print(list2) 我想請問一下 為什麼我想要分別把list裡面的項目轉成int的時候 會出現下面這一個錯誤: list2[k]=int(list2[k]) TypeError: 'str' object does not support item assignment 我要從哪邊去修正 才可以讓他轉成數字 這個是要做身分證檢驗 所以要把輸入的文字轉換成對應的數字 然後再去做運算 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.34.59.152 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1527697607.A.056.html

05/31 00:43, 7年前 , 1F
想想看list2, list2[k]分別代表什麼 跟你想做的事一樣?
05/31 00:43, 1F
for k in range(len(list1)): list3.append(list2[k]) for j in range(len(list3)): list3[j]=int(list3[j]) 我後來改成這樣就過了 原本的字串是'10123456789' 要把它拆分開來變成獨立的才能轉 應該是這樣吧? 我雖然寫出我要的但是還是沒有想很通 ※ 編輯: s82237823 (114.34.59.152), 05/31/2018 01:24:58

05/31 01:35, 7年前 , 2F
善用type()
05/31 01:35, 2F

05/31 01:35, 7年前 , 3F
你把list3跟list2的屬性搞清楚就知道為什麼了
05/31 01:35, 3F

05/31 01:35, 7年前 , 4F
list2是str
05/31 01:35, 4F

05/31 01:35, 7年前 , 5F
list3是list
05/31 01:35, 5F
我懂了 感謝!!! ※ 編輯: s82237823 (114.34.59.152), 05/31/2018 01:40:59

05/31 12:36, 7年前 , 6F
建議變數命名要有意義
05/31 12:36, 6F

05/31 17:12, 7年前 , 7F
好的!!
05/31 17:12, 7F

06/01 00:06, 7年前 , 8F
python不建議這樣取名 因為屬性很可能在一半改變
06/01 00:06, 8F
文章代碼(AID): #1R3j371M (Python)
文章代碼(AID): #1R3j371M (Python)