Pythonic列表到字符串方法

时间:2012-08-05 13:06:36

标签: python

所以我想知道将列表变成字符串的最“pythonic”方式是什么。

例如:

string_list = ['h', 'e', 'l', 'l', 'o']
# to the string
string = 'hello'

我一直在使用''.join(string_list)方法,但只是感觉接近不可读和迂回的方法来做这么简单的事情。

有更好的方法还是我过于复杂?

3 个答案:

答案 0 :(得分:5)

不,这是做pythonic的方法。

也许你觉得它应该是:string_list.join('')。你是not alone

可能最重要的优势是,这使.join()能够使用可迭代的任何

如果它相反,每个集合都需要自己实现join()方法。如果您要创建自己的集合,是否会添加.join()方法?可能不是。

它是str类的方法,这意味着始终工作。没有惊喜。有关join()以及Flask作者Armin Ronacher的其他信息,请参阅Python and the principle of least astonishment。{/ p>

可以对len()函数/运算符进行类似的论证,可以在上述文章的开头找到。

答案 1 :(得分:4)

使用''.join(string_list)。请注意,list命名为内置类型,因此不应将其用于变量名称。由于Python字符串是不可变的,因此无论如何都需要构造一个新的字符串。 ''.join(s)是在Python中执行此操作的规范且有效的方法。

答案 2 :(得分:2)

我认为你过度复杂了。这是来自python本身:

>>> list = ['h', 'e', 'l', 'l', 'o']
>>> sum(list, '')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sum() can't sum strings [use ''.join(seq) instead]

因此,python的建议是使用''.join