5

为什么 python 不删除非中断空格,.strip(' ')而是.split(' ')在字符上拆分?

4

1 回答 1

4

首先,这些函数执行两个不同的任务:

'      foo    bar    '.split() is ['foo','bar']
#a list of substrings without any white space (Note the default is the look for whitespace - see below)
'      foo    bar    '.strip() is 'foo    bar'
#the string without the beginning and end whitespace

.

strip(' ')只使用开头和结尾的空格strip()时,虽然非常相似但并不完全相同,例如 tab\t是空格但不是空格:

'   \t   foo   bar  '. strip()    is 'foo   bar'
'   \t   foo   bar  '. strip(' ') is '\t   foo   bar'

使用split(' ')它时,将字符串“拆分”为每个空格的列表,与split()将字符串拆分为每个“空白”的列表相比。考虑'foo bar'(在 foo 和 bar 之间有两个空格)。

'foo  bar'.split()    is ['foo', 'bar']
#Two spaces count as only one "whitespace"
'foo  bar'.split(' ') is ['foo', '', 'bar']
#Two spaces split the list into THREE (seperating an empty string)

微妙之处在于两个空格或几个空格和制表符被视为“一个空格”。

于 2012-09-06T08:36:46.800 回答