作者s82237823 ()
看板Python
标题[问题] list错误讯息
时间Thu May 31 00:26:43 2018
各位大大好:
小弟最近刚开始学写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://webptt.com/cn.aspx?n=bbs/Python/M.1527697607.A.056.html
1F:→ djshen: 想想看list2, list2[k]分别代表什麽 跟你想做的事一样? 05/31 00:43
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
2F:→ ponponjerry: 善用type() 05/31 01:35
3F:→ ponponjerry: 你把list3跟list2的属性搞清楚就知道为什麽了 05/31 01:35
4F:→ ponponjerry: list2是str 05/31 01:35
5F:→ ponponjerry: list3是list 05/31 01:35
我懂了 感谢!!!
※ 编辑: s82237823 (114.34.59.152), 05/31/2018 01:40:59
6F:推 TitanEric: 建议变数命名要有意义 05/31 12:36
7F:→ s82237823: 好的!! 05/31 17:12
8F:推 handsomeLin: python不建议这样取名 因为属性很可能在一半改变 06/01 00:06