Answers:
用途join
:
>>> sentence = ['this','is','a','sentence']
>>> '-'.join(sentence)
'this-is-a-sentence'
sentence.join(" ")
由于反向操作是,因此我也希望能够工作list.split(" ")
。知道是否要将其添加到Python的列表方法中吗?
list.join
不适用于任意列表。另一方面,的参数str.join
可以是任何“可迭代”的字符串序列,而不仅仅是列表。唯一有意义的是内置函数join(list, sep)
。string
如果您真的想要的话,(基本上已过时)模块中会有一个。
' '.join(['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'
map(str, my_lst)
无需枚举list =)就足够了
int
但它可以是可以表示为字符串的任何类型。
' '.join(map(lambda x: ' $'+ str(x), my_lst))
返回'$1 $2 $3 $4 $5 $6 $7 $8 $9 $10'
对于初学者来说,了解join为什么是字符串方法非常有用 。
一开始很奇怪,但此后非常有用。
连接的结果始终是一个字符串,但是要连接的对象可以有多种类型(生成器,列表,元组等)。
.join
更快,因为它只分配一次内存。比经典串联更好(请参阅扩展说明)。
一旦学习了它,它就会非常舒适,您可以执行以下技巧来添加括号。
>>> ",".join("12345").join(("(",")"))
Out:
'(1,2,3,4,5)'
>>> list = ["(",")"]
>>> ",".join("12345").join(list)
Out:
'(1,2,3,4,5)'
尽管@Burhan Khalid的回答很好,但我认为这样更容易理解:
from str import join
sentence = ['this','is','a','sentence']
join(sentence, "-")
join()的第二个参数是可选的,默认为“”。
编辑:此功能已在Python 3中删除
我们还可以使用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
?
def eggs(someParameter):
del spam[3]
someParameter.insert(3, ' and cats.')
spam = ['apples', 'bananas', 'tofu', 'cats']
eggs(spam)
spam =(','.join(spam))
print(spam)
'-'.join(sentence)