Python 中的拆分与剥离以删除多余的白色 space

Split vs Strip in Python to remove redundant white space

请问是否需要在split()之前使用strip()去除Python中多余的space(之后变成列表)? 例如:

string1 = '   a      b '

我想要结果:

#list1=[a,b]

我测试的时候发现list1=string1.split()就够了。但不知何故,我的老师说 string1.strip().split() 是必需的。也许他错了?

根据 documentation:

If sep is not specified or is None, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace.

也就是说,strip()的逻辑已经包含在split()中了,所以我想,你老师错了。 (请注意,如果您使用 non-default 分隔符,这将会改变。)

https://docs.python.org/3/library/stdtypes.html#str.split

If sep is not specified or is None, a different splitting algorithm is applied: runs of consecutive whitespace are regarded as a single separator, and the result will contain no empty strings at the start or end if the string has leading or trailing whitespace.

你是对的(至少在使用默认的空格分割的情况下)。忽略前导和尾随以及连续的空白字符,并且由于 .strip() 除了删除前导和尾随空格外什么都不做,因此这里将产生相同的输出。

我尝试使用:

string1 = '   a      b '
list1 = string1.strip().split()
print(list1)

string1 = '   a      b '
list1 = string1.split()
print(list1)

他们给出了相同的结果。

因此不一定需要使用 strip(),因为它只会删除开头的空格(前导空格)和末尾的空格(尾随空格)。