Python中join()方法的主要作用是以特定的字符或字符串作為分隔符(字符串)將若干字符串拼接在一起。其作用的對象可以是單獨的一個字符串,也可以是一個字符串元組,字符串列表、字符串集合或字符串字典類型。
separator-string.join(iterable-string)
iterable-string:待連接在一起的字符串或字符串序列對象(如元組、集合或列表等);
separator-string:用于連接時使用的字符或字符串。
該函數執行完后將生成一個新字符串。
>>> str1 = "武林網VEVB"
>>> sep = "*"
>>> res = sep.join(str1)
>>> print(res)
翔*宇*亭*I*T*樂*園
>>>
在Python3.8.2中的執行情況:
由上面的例子可以看出,單獨一個字符串的話,join使用指定的字符或字符串將每個字符進行分隔連接。
separator-string可以是多個字符的字符串,見下面的例子:
>>> str1 = "武林網VEVB"
>>> sep = "*#"
>>> res = sep.join(str1)
>>> print(res)
翔*#宇*#亭*#I*#T*#樂*#園
>>>
在Python 3.8.2中的執行情況:
>>> lst = ['Python', 'R', 'Java', 'SPSS']
>>> sep = "**"
>>> res = sep.join(lst)
>>> print(res)
Python**R**Java**SPSS
>>>
>>> t = ('武林網', 'IT', '樂園')
>>> res = ''.join(t)
>>> print(res)
武林網VEVB
>>>
上面這個例子使用的分隔字符串是空字符串,這也是允許的。
>>> set1 = {"Python", "簡單", "易學", "易上手"}
>>> res = "/t".join(set1)
>>> print(res)
易學 Python 易上手 簡單
>>>
上面這個例子使用了轉義字符制表鍵字符 /t,這也是可以的。但由于集合是無序的,它輸出的順序與定義集合時的順序不一定相同。
在Python3.8.2中的運行結果如下:
>>> dic = {'1' : 'python', '2' : 'R', '3' : 'SPSS'}
>>> sep = "$"
>>> res = sep.join(dic)
>>> print(res)
1$2$3
>>>
從上面的例子可以看出,當join方法使用在字典中時只對鍵進行操作。由于join方法只對字符串起作用,這時需要注意的是確保字典中的所有鍵是字符串類型,不能是其它數據類型,否則,將會引發TypeError異常。這種情況也適用于其它可迭代類型的序列,如前面的集合、元組、列表等,需要保證每個值是字符串類型。
當然你可以借助字典對象的values()方法實現對字典中值的連接,下面是具體的例子:
>>> dic = {'1' : 'python', '2' : 'R', '3' : 'SPSS'}
>>> sep = "$"
>>> sep.join(dic.values())
'python$R$SPSS'
>>>
當join方法作用于非字符串類型時將引發TypeError錯誤。看下面的例子。
>>> t = (12, 13, 14)
>>> res = "-".join(t)
Traceback (most recent call last):
File "<pyshell#46>", line 1, in <module>
res = "-".join(t)
TypeError: sequence item 0: expected str instance, int found
>>>
即,元組t中存在不是字符串的元素,引發了 TypeError 異常。
在Python3.8.2中的執行情況如下圖:
本文(完)
新聞熱點
疑難解答