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中的执行情况如下图:
本文(完)
新闻热点
疑难解答