作者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)
1F:→ sbrhsieh:''.join(a) 08/26 22:55
2F:推 suzuke:推1F的作法, 这样会比用+=来的快 08/26 22:57
3F:→ Jason1122:真是太神奇了!@@ Ths 08/26 22:57
4F:→ suzuke:还有你的code我测试没有发生这样的问题~ 08/26 22:59
5F:→ suzuke:尽量避免将字串用+=的方式串起来, 因为每+=一次就要把al这 08/26 23:00
6F:→ suzuke:个字串复制一次, 当然loop次数少可以用, 资料大的时候就会 08/26 23:00
7F:→ suzuke:明显速度慢了许多 08/26 23:00
8F:→ chigi:补充 range(a,b) 出来结果是list, 不是int 08/27 00:54
9F:→ chigi:我蠢了XD 请帮我删掉推文(遮脸 08/27 00:56
10F:推 alex0914:我用你的code也没问题耶0.0 08/28 10:13