Python interview - Split & Join

1. Split 是对字符串进行拆分处理。

string.split(str="", num=string.count(str)): 以str为分隔,符切片string,如果num有指定的值,那么仅仅分隔num个子字符串。


split(…)
S.split([sep [,maxsplit]]) -> 由字符串分割成的列表
返回一组使用分隔符(sep)分割字符串形成的列表。如果指定最大分割数,则在最大分割时结束。如果分隔符未指定或者为none,则分隔符默认为空格。

举例:

<pre name="code" class="python">s='a b c'
print s.split(' ')st='hello world'print st.split('o')print st.split('o',1)--------output---------['a', 'b', 'c']['hell', ' w', 'rld']['hell', ' world']

 

需要注意的是,分隔符不可以是空的,否则会出现以下错误

Traceback (most recent call last):
  File "xxxx.py", line 2, in <module>
    print s.split('')
ValueError: empty separator

但是可以使用不在被需要分隔的string中的分隔符:

s = 'a b c'

>>> s.split('x')
['a b c']
>>> s.split('xsdfadsf')
['a b c']


2. Join是对所有元素(字符串)通过分隔符连接成一个新的字符串

string.join(sep) ,以string作为分隔符,将sep中所有元素(字符串)合并成一个新的字符串


p.s. 在python中,字符串string,元祖tuple,列表list等都是序列类型,有着相同的访问方式,都可以用下标来访问其中的元素。所以,对于这类参数可以直接使用join。

例子:

print '.'.join('abcd')
print '.'.join({'a':1,'b':2,'c':3,'d':4})
print '%'.join(['a','b','c'])
print '%'.join(str(['a','b','c']))

#print
a.b.c.d
a.c.b.d
a%b%c
[%'%a%'%,% %'%b%'%,% %'%c%'%]

可见,对于list来说,转换为str是多余的,再使用join就是对于一个完全的string字符串进行操作。



# 对于导入os模块的os.path.split()和os.path.join()在处理机制上有不同,功能实现上一样。

os.path.split是按照路径将文件名和路径分隔开,比如c:\\python27\\test.py,被分割为['c:\\python27','test.py']

import os
print os.path.split('c:\\python27\\test.py')
print os.path.split('c:\\python27\\')
-----------------output---------------------
('c:\\python27', 'test.py')
('c:\\python27', '')

os.path.join(path1[, path2[, ...]]) 将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

os.path.join('c:\\', 'python27', 'test.py')
os.path.join('windows\temp', 'c:\\', 'python27', 'test.py')
os.path.join('/home/aa', '/home/aa/bb', 'home/aa/bb/c')


#result

'c:\\python27\\test,py'
'c:\\python27\\test,py'
'/home/aa/bb/c'

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值