[問題] List內字串相加的疑問

看板Python作者 (Jason1122)時間12年前 (2011/08/26 22:42), 編輯推噓2(208)
留言10則, 5人參與, 最新討論串1/1
我有一問題,雖然最後解決了,但有部分不明白 有一個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)

08/26 22:55, , 1F
''.join(a)
08/26 22:55, 1F

08/26 22:57, , 2F
推1F的作法, 這樣會比用+=來的快
08/26 22:57, 2F

08/26 22:57, , 3F
真是太神奇了!@@ Ths
08/26 22:57, 3F

08/26 22:59, , 4F
還有你的code我測試沒有發生這樣的問題~
08/26 22:59, 4F

08/26 23:00, , 5F
盡量避免將字串用+=的方式串起來, 因為每+=一次就要把al這
08/26 23:00, 5F

08/26 23:00, , 6F
個字串複製一次, 當然loop次數少可以用, 資料大的時候就會
08/26 23:00, 6F

08/26 23:00, , 7F
明顯速度慢了許多
08/26 23:00, 7F

08/27 00:54, , 8F
補充 range(a,b) 出來結果是list, 不是int
08/27 00:54, 8F

08/27 00:56, , 9F
我蠢了XD 請幫我刪掉推文(遮臉
08/27 00:56, 9F

08/28 10:13, , 10F
我用你的code也沒問題耶0.0
08/28 10:13, 10F
文章代碼(AID): #1ELx33q_ (Python)