如何将一个字符串列表连接成一个字符串?
例如,给定['this', 'is', 'a', 'sentence'],我如何得到"this-is-a-sentence"?
要在单独的变量中处理几个字符串,请参见如何在Python中将一个字符串附加到另一个字符串。
对于相反的过程-从字符串创建列表-请参阅如何将字符串分割为字符列表?或如何将字符串分割成单词列表?是合适的。
如何将一个字符串列表连接成一个字符串?
例如,给定['this', 'is', 'a', 'sentence'],我如何得到"this-is-a-sentence"?
要在单独的变量中处理几个字符串,请参见如何在Python中将一个字符串附加到另一个字符串。
对于相反的过程-从字符串创建列表-请参阅如何将字符串分割为字符列表?或如何将字符串分割成单词列表?是合适的。
当前回答
我们还可以使用Python的reduce函数:
from functools import reduce
sentence = ['this','is','a','sentence']
out_str = str(reduce(lambda x,y: x+"-"+y, sentence))
print(out_str)
其他回答
这对初学者来说很有用 为什么join是一个字符串方法。
一开始很奇怪,但之后很有用。
join的结果总是一个字符串,但要连接的对象可以是多种类型(生成器、列表、元组等)。
.join更快,因为它只分配一次内存。比经典的串联(参见扩展解释)更好。
一旦你学会了,它就很舒服了,你可以做一些像这样的技巧来添加括号。
>>> ",".join("12345").join(("(",")"))
Out:
'(1,2,3,4,5)'
>>> list = ["(",")"]
>>> ",".join("12345").join(list)
Out:
'(1,2,3,4,5)'
如果没有.join()方法,你可以使用这个方法:
my_list=["this","is","a","sentence"]
concenated_string=""
for string in range(len(my_list)):
if string == len(my_list)-1:
concenated_string+=my_list[string]
else:
concenated_string+=f'{my_list[string]}-'
print([concenated_string])
>>> ['this-is-a-sentence']
因此,在这个例子中,基于range的for循环,当python到达列表的最后一个单词时,它不应该将"-"添加到你的concenated_string中。如果它不是你的字符串的最后一个词,总是附加"-"字符串到你的concenated_string变量。
来自未来的编辑:请不要使用下面的答案。这个函数在python3中被移除,python2已经死亡。即使你仍在使用Python 2,你也应该编写Python 3就绪代码,使不可避免的升级更容易。
虽然@Burhan Khalid的回答很好,但我认为这样更容易理解:
from str import join
sentence = ['this','is','a','sentence']
join(sentence, "-")
join()的第二个参数是可选的,默认为" "。
我们还可以使用Python的reduce函数:
from functools import reduce
sentence = ['this','is','a','sentence']
out_str = str(reduce(lambda x,y: x+"-"+y, sentence))
print(out_str)
我们可以指定如何连接字符串。我们可以用' '代替'-':
sentence = ['this','is','a','sentence']
s=(" ".join(sentence))
print(s)