python:python列表到字符串方法

所以我想知道将列表转换成字符串的最"python式"的方法是什么。

例如:

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

我一直在使用''.join(string_list)方法,但感觉它几乎不可读和迂回的方法来做一些如此简单的事情。

有没有更好的方法,还是我把事情搞得太复杂了?


不,这是python的方法。

也许你觉得应该这样写:string_list.join('')。你并不孤单。

可能最重要的优点是,这使.join()能够处理任何可迭代的东西。

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

事实上,它是str类的一个方法,这意味着它将始终工作。这并不令人意外。请阅读这里的Python和Flask作者Armin Ronacher撰写的关于join()和其他事情的最低惊奇原则。

len()函数/运算符也有类似的参数,可以在前面的文章开头找到。


使用''.join(string_list)。注意list为内置类型命名,因此不应该将其用于变量名。由于Python字符串是不可变的,所以无论如何都需要构造一个新字符串。''.join(s)是在Python中实现这一点的规范而有效的方法。


我觉得你太复杂了。以下来自python本身:

1
2
3
4
5
>>> 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