join(str(x))的问题

时间:2016-04-23 03:08:27

标签: python string python-2.7 join

1-2-3

预期:

(-1-,- -2-,- -3-)

实际值:

{{1}}

这里发生了什么?

2 个答案:

答案 0 :(得分:2)

因为在整个列表中调用str会将整个列表作为字符串:

>>> str([1,2,3])
'[1, 2, 3]'

您需要做的是将字符串中的每个项目投射到str,然后进行加入:

>>> '-'.join([str(i) for i in x])
'1-2-3'

答案 1 :(得分:1)

您首先将x发送到str(),将给定的分隔符放在整个list的字符串表示的每个字符之间。不要这样做。将每个项目发送到str()

>>> x = [1,2,3]
>>> print '-'.join(map(str, x))
1-2-3