看板 Python 關於我們 聯絡資訊
我有一問題,雖然最後解決了,但有部分不明白 有一個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