有没有更简单的方法将列表中的字符串项连接为单个字符串?我可以使用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'
>>> ' '.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(("(",")"))
Out:
'(1,2,3,4,5)'
>>> list = ["(",")"]
>>> ",".join("12345").join(list)
Out:
'(1,2,3,4,5)'