本文翻译自:Concatenate item in list to strings
Is there a simpler way to concatenate string items in a list into a single string? 有没有更简单的方法将列表中的字符串项连接为单个字符串? Can I use the str.join()
function? 我可以使用str.join()
函数吗?
Eg this is the input ['this','is','a','sentence']
and this is the desired output this-is-a-sentence
例如,这是输入['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
#1楼
参考:https://stackoom.com/question/qFkC/将列表中的项目连接到字符串
#2楼
>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
#3楼
Although @Burhan Khalid's answer is good, I think it's more understandable like this: 尽管@Burhan Khalid的回答很好,但我认为这样更容易理解:
from str import join
sentence = ['this','is','a','sentence']
join(sentence, "-")
The second argument to join() is optional and defaults to " ". join()的第二个参数是可选的,默认为“”。
EDIT: This function was removed in Python 3 编辑:此功能已在Python 3中删除
#4楼
A more generic way to convert python lists to strings would be: 将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'
#5楼
It's very useful for beginners to know why join is a string method 对于初学者来说,了解为什么join是字符串方法非常有用
It's very strange at the beginning, but very useful after this. 一开始这很奇怪,但此后非常有用。
The result of join is always a string, but the object to be joined can be of many types (generators, list, tuples, etc) 连接的结果始终是字符串,但是要连接的对象可以是多种类型(生成器,列表,元组等)
.join
is faster because it allocates memory only once. .join
更快,因为它只分配一次内存。 Better than classical concatenation. 比经典的串联更好。 extended explanation 扩展说明
Once you learn it, it's very comfortable and you can do tricks like this to add parentheses. 一旦学习了它,它就会非常舒适,并且您可以执行类似的技巧来添加括号。
>>> ",".join("12345").join(("(",")"))
'(1,2,3,4,5)'
>>> lista=["(",")"]
>>> ",".join("12345").join(lista)
'(1,2,3,4,5)'
#6楼
We can also use the python inbuilt functionality of reduce:- 我们还可以使用reduce的python内置功能:-
from functools import reduce 从functools进口减少
sentence = ['this','is','a','sentence'] 句子= ['this','is','a','sentence']
out_str=str(reduce(lambda x,y:x+"-"+y,sentence)) out_str = str(reduce(lambda x,y:x +“-” + y,sentence))
print(out_str) 打印(out_str)
I hope this helps :) 我希望这有帮助 :)