作者Jason1122 (Jason1122)
看板Python
標題[問題] List內字串相加的疑問
時間Fri Aug 26 22:42:07 2011
我有一問題,雖然最後解決了,但有部分不明白
有一個List
a=['P', 'y', 't', 'h', 'o', 'n']
我想要將裡面的字串連在一起
我本來是用
a1=''
for word in range(0,len(a)):
a1 += a[word]
print a1
這樣會出錯
Traceback (innermost last):
File "<stdin>", line 2, in <module>
TypeError: list indices must be integers, not str
我覺得很奇怪他說
word是str,但range(0,len(a)),不就是int嗎?
我還特別type(len(a))一下確定是int沒錯,但不知為何會說因為str錯了
最後我是加了
int(word)才解決的
不知改怎麼解釋,或是有什麼function更方便完成的?
煩請協助解釋,謝謝!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.238.219.27
※ 編輯: Jason1122 來自: 219.238.219.27 (08/26 22:44)
→ sbrhsieh:''.join(a) 08/26 22:55
推 suzuke:推1F的作法, 這樣會比用+=來的快 08/26 22:57
→ Jason1122:真是太神奇了!@@ Ths 08/26 22:57
→ suzuke:還有你的code我測試沒有發生這樣的問題~ 08/26 22:59
→ suzuke:盡量避免將字串用+=的方式串起來, 因為每+=一次就要把al這 08/26 23:00
→ suzuke:個字串複製一次, 當然loop次數少可以用, 資料大的時候就會 08/26 23:00
→ suzuke:明顯速度慢了許多 08/26 23:00
→ chigi:補充 range(a,b) 出來結果是list, 不是int 08/27 00:54
→ chigi:我蠢了XD 請幫我刪掉推文(遮臉 08/27 00:56
推 alex0914:我用你的code也沒問題耶0.0 08/28 10:13