python中的join和split

join

join 有两种,一种是连接字符串的join(),将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串;

另一种是连接多个路径的os.path.join()

>>> str1="China 1 2 3"      
>>> type(str1)              
<class 'str'>
>>> print((','.join(str1))
... )
C,h,i,n,a, ,1, ,2, ,3
>>> 
>>> list1=['China',1,2,3]
>>> type(list1)
<class 'list'>
>>> print(','.join(list1))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sequence item 1: expected str instance, int found
>>> list1=['China','1','2','3']
>>> print((':'.join(list1)))   
China:1:2:3
>>> print((','.join(list1)))
China,1,2,3
>>> type((','.join(list1)))
<class 'str'>
>>> 
>>> tup1=('China','1','2','3')
>>> type(tup1)
<class 'tuple'>
>>> print(':'.join(tup1))
China:1:2:3
>>> type(':'.join(tup1))
<class 'str'>
>>> 
>>> dic1={'k1':'China,'v1':1,'v2':2}
  File "<stdin>", line 1
    dic1={'k1':'China,'v1':1,'v2':2}
                        ^
SyntaxError: invalid syntax
>>> dic1={'k1':'China','v1':1,'v2':2}
>>> type(dic1)
<class 'dict'>
>>> print(':'.join(dic1))
k1:v1:v2
>>> type(':'.join(dic1))
<class 'str'>
>>> 
>>> #目录
... 
>>> import os
>>> os.path.join('china','usa','japan')
'china/usa/japan'

split

也有两种,第一种split
语法:str.split(str="",num=string.count(str))[n]
str:表示为分隔符,默认为空格,但是不能为空('')。若字符串中没有分隔符,则把整个字符串作为列表的一个元素
num:表示分割次数。如果存在参数num,则仅分隔成 num+1 个子字符串,并且每一个子字符串可以赋给新的变量
[n]:表示选取第n个分片
第二种os.path.split('PATH')
 PATH指一个文件的全路径作为参数:
 如果给出的是一个目录和文件名,则输出路径和文件名
 如果给出的是一个目录名,则输出路径和为空文件名

>>> #split
... 
>>> str1="China   1   2   3"
>>> print(str1.split())
['China', '1', '2', '3']
>>> print(str1.split('.'))
['China   1   2   3']
>>> str2="China   ,1 ,2,3"    
>>> print(str2.split(','))
['China   ', '1 ', '2', '3']
>>> 
>>> print(str2.split(','),1)
['China   ', '1 ', '2', '3'] 1
>>> print(str2.split(',',1))
['China   ', '1 ,2,3']
>>> # 以上分割1次
... 
>>> # 分割两次,并取序列为1的项
... 
>>> print(str2.split(',',2)[1]) 
1 
>>> print(str2.split(',',2))   
['China   ', '1 ', '2,3']
>>> 
>>> print(str2.split(',',-1))
['China   ', '1 ', '2', '3']
>>> 
>>> #分割多次,并保存多个
... 
>>> v1,v2,v3=str2.split(',',2)
>>> print(v1)
China   
>>> print(v2)
1 
>>> print(v3)
2,3
>>> 
>>> #分离路径
... 
>>> import os
>>> print(os.path.split('/home/mysql/test.txt'))
('/home/mysql', 'test.txt')
>>> print(os.path.split('/home/mysql/data/'))   
('/home/mysql/data', '')

>>> # 经典例子
... 
>>> str="hello boy<[www.baidu.com]>byebye" 
>>> print(str.split("[')[1].split("]")[0])
  File "<stdin>", line 1
    print(str.split("[')[1].split("]")[0])
                                   ^
SyntaxError: invalid syntax
>>> print(str.split("[")[1].split("]")[0])
www.baidu.com


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朝闻道-夕死可矣

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值