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()
,因为它只会删除开头的空格(前导空格)和末尾的空格(尾随空格)。
请问是否需要在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()
,因为它只会删除开头的空格(前导空格)和末尾的空格(尾随空格)。