python连接字符串的几种方法--转子(香草拿铁的园子)

一. str1+str2

string类型 ‘+’号连接

>>> str1="Good"
>>> str2="Luck"
>>> str1+str2
'GoodLuck'
>>>
注意:该方式性能较差,因为python中字符串是不可变的类型,使用 + 连接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存

二. str1,str2

string类型 ‘,’号连接成tuple类型

>>> str1="Good"
>>> str2="Luck"
>>> str1 ,str2
('Good', 'Luck')
>>> type((str1 ,str2))
<type 'tuple'>
>>>

三. “%s%s” %(str1,str2)  相当方便 !!!

string类型占位符连接

>>> str1="Good"
>>> str2="Luck"
>>> "%s%s"%(str1,str2)
'GoodLuck'

四. str1 str2

string类型空格自动连接

>>> "Good" "Luck"
'GoodLuck'

这里需要注意的是,参数不能代替具体的字符串写成 
正确方式:

 str1="Good" "Luck"

 print(str1)

>>>GoodLuck

错误方式:(不能用标签代替具体的字符串)

>>> str1="Good"
>>> str2="Luck"
>>> str1 str2
  File "<stdin>", line 1
    str1 str2
            ^
SyntaxError: invalid syntax

五. M*str1*N  相当神奇,直接可以用*

string类型乘法连接

>>> str1="Good"
>>> 1*str1*4
'GoodGoodGoodGood'
>>>

六. join方式连接   方法比较怪异  注意结果 相当于把字符串插入到list或者tupel中

string类型join方式连接list/tuple类型

>>> str1="one"
>>> list1=["a","b","c"]
>>> tuple1=("H","I","J")
>>> str1.join(list1)
'aonebonec'
>>> str1.join(tuple1)
'HoneIoneJ'

这里的join有点像split的反操作,将列表或元组用指定的字符串相连接; 
但是值得注意的是,连接的列表或元组中元素的类型必须全部为string类型,否则就可能报如下的错误:

>>> list2=["a",2,"c",4.3]
>>> str1.join(list2)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 1: expected string, int found
>>>

join还有一个妙用,就是将所有list或tuple中的元素连接成string类型并输出;

>>> list1
['a', 'b', 'c']
>>> "".join(list1)
'abc'
>>> type("".join(list1))
<type 'str'>
>>>

七.列表推导方式连接   

与join方式类似

>>> "".join(["Land" for i in xrange(3)])
'LandLandLand'
>>> "0".join(["Land" for i in xrange(2)])
'Land0Land'
>>>
原文地址:https://www.cnblogs.com/darwen/p/8399318.html