如何将一个字符串列表连接成一个字符串?

例如,给定['this', 'is', 'a', 'sentence'],我如何得到"this-is-a-sentence"?


要在单独的变量中处理几个字符串,请参见如何在Python中将一个字符串附加到另一个字符串。

对于相反的过程-从字符串创建列表-请参阅如何将字符串分割为字符列表?或如何将字符串分割成单词列表?是合适的。


当前回答

使用str.join:

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

其他回答

def eggs(someParameter):
    del spam[3]
    someParameter.insert(3, ' and cats.')


spam = ['apples', 'bananas', 'tofu', 'cats']
eggs(spam)
spam =(','.join(spam))
print(spam)

使用str.join:

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

我们还可以使用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()方法,你可以使用这个方法:

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变量。

我们可以指定如何连接字符串。我们可以用' '代替'-':

sentence = ['this','is','a','sentence']
s=(" ".join(sentence))
print(s)