将列表中的项目连接到字符串
有一个更简单的方法来连接列表中的字符串项目为单个字符串?
我可以使用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中被删除