python: split的用法,在后面的括号不同,输出的也不一样,大神能不能帮忙解释一下下面的例子。
3 回答

aluckdog
TA贡献1847条经验 获得超7个赞
split的第一个参数是分隔符。
如果省略第一个参数,默认把所有的空格、制表符、回车符当作分隔符,并过滤掉空串。这个也是你第一种写法的效果。
line.split(‘\t''\n')
'\t'和'\n'是两个字符串,会自动进行拼接,形成'\t\n'作为分隔符。而在你输入的字符串中,不包含这样的字串,所以就分割的结果就是原串。
split(‘\t')
以'\t'作为分隔符,分割的结果就是第三种写法。
split不支持同时使用多种字符做分隔符,如果想实现这样的效果,可以用re,例如:
>>> a
'wowofbfwjowoefbwfoweojbwoefja'
>>> import re
>>> re.split('[ab]', a)
['wowof', 'fwjowoef', 'wfoweoj', 'woefj', '']

阿晨1998
TA贡献2037条经验 获得超6个赞
>>> whole = map(lambda ln: ln.split('\t'), filter(lambda ln: ln.split(), f.readlines().split('\n')))
>>> whole
[['1800', '897', '87784'], ['1800', '897', '87784']]
>>>
添加回答
举报
0/150
提交
取消