是否有更简单的方法将列表中的字符串项连接成一个字符串?
我可以使用str.join()
功能加入列表中的项目吗?
E.g。这是输入['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
答案 0 :(得分:772)
使用join
:
>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
答案 1 :(得分:96)
将python列表转换为字符串的更通用的方法是:
{{1}}
答案 2 :(得分:31)
这对初学者来说非常有用 why join is a string method
一开始很奇怪,但在此之后非常有用。
join的结果总是一个字符串,但是要连接的对象可以是多种类型(生成器,列表,元组等)
.join
更快,因为它只分配一次内存。比经典连接更好。 extended explanation
一旦你学会了它,它就会非常舒服,你可以做这样的技巧来添加括号。
>>> ",".join("12345").join(("(",")"))
'(1,2,3,4,5)'
>>> lista=["(",")"]
>>> ",".join("12345").join(lista)
'(1,2,3,4,5)'
答案 3 :(得分:13)
虽然@Burhan Khalid's answer很好,但我认为这样可以理解:
from str import join
sentence = ['this','is','a','sentence']
join(sentence, "-")
join()的第二个参数是可选的,默认为" "
编辑:此功能已在Python 3中删除
答案 4 :(得分:2)
我们还可以使用reduce的python内置功能:-
从functools导入reduce
句子= ['this','is','a','sentence']
out_str = str(reduce(lambda x,y:x +“-” + y,sentence))
print(out_str)
我希望这会有所帮助:)
答案 5 :(得分:1)
我们可以指定我们如何连接字符串。代替'-',我们可以使用''
sentence = ['this','is','a','sentence']
s=(" ".join(sentence))
print(s)
答案 6 :(得分:1)
这肯定会有所帮助-
arr=['a','b','h','i'] # let this be the list
s="" # creating a empty string
for i in arr:
s+=i # to form string without using any function
print(s)
答案 7 :(得分:1)
list = ['aaa', 'bbb', 'ccc']
string = ''.join(list)
print(string)
>>> aaabbbccc
string = ','.join(list)
print(string)
>>> aaa,bbb,ccc
string = '-'.join(list)
print(string)
>>> aaa-bbb-ccc
string = '\n'.join(list)
print(string)
>>> aaa
>>> bbb
>>> ccc
答案 8 :(得分:1)
如果您有混合内容列表。并想对其进行字符串化。 这是一种方法:
考虑这个列表:
>>> aa
[None, 10, 'hello']
将其转换为字符串:
>>> st = ', '.join(map(str, map(lambda x: f'"{x}"' if isinstance(x, str) else x, aa)))
>>> st = '[' + st + ']'
>>> st
'[None, 10, "hello"]'
如果需要,转换回列表:
>>> ast.literal_eval(st)
[None, 10, 'hello']
答案 9 :(得分:0)
如果要在最终结果中生成由逗号分隔的字符串,则可以使用以下内容:
sentence = ['this','is','a','sentence']
sentences_strings = "'" + "','".join(sentence) + "'"
print (sentences_strings) # you will get "'this','is','a','sentence'"
我希望这可以帮助某人。
答案 10 :(得分:0)
没有.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']
因此,在此示例中,基于范围的for循环,当python到达列表的最后一个字时,不应在您的concenated_string中添加“-”。如果不是字符串的最后一个单词,请始终在您的concenated_string变量后附加“-”字符串。