Python str.join()可以将其参数强制转换为字符串吗?

时间:2014-08-14 14:20:36

标签: python string type-conversion concatenation

这是我想要做的事情的成绩单。它目前在Python 2.7和3.4中都失败了:

>>> a = [3,4,5]
>>> ','.join(a)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 0: expected string, int found

这很有效,但是很笨拙且可能效率低下:

>>> ','.join(map(str, a))
'3,4,5'

我的问题是,是否有任何事情阻止我们在非字符串迭代中增强Python以支持str.join()(只要它们可以转换为字符串,例如str())?我找了一个关于此的PEP,但没找到。

1 个答案:

答案 0 :(得分:2)

目前正在python-ideaspython-dev围绕此主题进行相当多的讨论。 Here's a related comment from a Python core dev from 8/13:

  

鉴于每个物体都是可以攻击的,我不认为我们想要   给&#34; str(x)for x in&#34;语义为str.join ...&#34;。

所以,似乎会对这个想法产生一些阻力。如果您有兴趣讨论它,subscribe to python-ideas。在过去的几周里,与改进字符串连接相关的邮件是