将列表中的项目连接到字符串

有一个更简单的方法来连接列表中的字符串项目为单个字符串?

我可以使用str.join()函数来加入列表中的项目吗?

例如,这是输入['this','is','a','sentence'] ,这是所需的输出this-is-a-sentence

 sentence = ['this','is','a','sentence'] sent_str = "" for i in sentence: sent_str += str(i) + "-" sent_str = sent_str[:-1] print sent_str 

使用join

 >>> sentence = ['this','is','a','sentence'] >>> '-'.join(sentence) 'this-is-a-sentence' 

将python列表转换为字符串的更通用的方法是:

 >>> my_lst = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] >>> my_lst_str = ''.join(map(str, my_lst)) >>> print(my_lst_str) '12345678910' 

初学者知道为什么join是一个字符串方法是非常有用的

开始的时候很奇怪,但在这之后非常有用。

连接的结果总是一个字符串,但是要连接的对象可以有多种类型(生成器,列表,元组等)

.join更快,因为它只分配一次内存。 比经典连接更好。 扩展解释

一旦你了解它,这是非常舒适的,你可以做这样的技巧来添加括号。

  >>> ",".join("12345").join(("(",")")) '(1,2,3,4,5)' >>> lista=["(",")"] >>> ",".join("12345").join(lista) '(1,2,3,4,5)' 

虽然@ Burnhad Khalid的答案是好的,我觉得这样更容易理解:

 from str import join sentence = ['this','is','a','sentence'] join(sentence, "-") 

join()的第二个参数是可选的,默认为“”。

编辑:这个功能在Python 3中被删除