2012-05-05 54 views

回答

0
>>> L = [1, 2, 3] 
>>> ' '.join('%u' % x for x in L) 
'1 2 3' 
7

下面发生器表达' '.join(str(i) for i in [1,2,3])将改变每个号码列表中的到空间分隔的字符串'1 2 3'

5

试试这个:

' '.join(map(str, [1, 2, 3])) 

或者这样:

' '.join(str(x) for x in [1, 2, 3]) 

这一个作品了。它效率不高并且有点难看,但展示了如何使用完全不同的方法解决问题 - 即正则表达式。

import re 
re.sub(r'[],\[]', '', str([1, 2, 3])) 
+1

如果您删除丑陋的'正则表达式'解决方案,我会对此+1:D – jamylak

+0

@jamylak现在怎么样?我没有删除它,但添加了一个关于丑陋的警告:) –

+0

好吧! – jamylak

-4

查看数组并将每个元素附加到一个字符串,以空字符串开头。

+2

这不是Python中的首选方式。另外,'join'方法要快得多。 – rubik

+2

不仅如此,而且这是一个陷阱。这在CPython中不会太糟糕,但在其他实现中,这可能会导致性能下降。 –

0

我不清楚,是否要将[1,2,3]转成'123''1 2 3'

' '.join(str(i) for i in [1,2,3]) 

将导致 '1 2 3'

''.join(str(i) for i in [1,2,3]) 

将导致 '123'

(注之间的差值 ''。加入和 ''。加入。)

相关问题