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

2025-03-11 06:29:47
推荐回答(3个)
回答1:

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', '']

回答2:

>>> whole = map(lambda ln: ln.split('\t'), filter(lambda ln: ln.split(), f.readlines().split('\n')))
>>> whole
[['1800', '897', '87784'], ['1800', '897', '87784']]
>>>

回答3:

居然学python 现在不流行啊