Does a Python strip() on a split() string do anything?
The documentation indicates that split
with the implicit whitespace delimiter (that is, split()
without further arguments) will clear out any "empty tokens" and you don't need to strip anything. As any consecutive series of whitespace could be interpreted as a list of empty tokens delimited by space, that'll mean the strings get trimmed automatically.
If, instead you split with a different delimiter or implicitly defined the whitespace, this may happen:
' 1 2 3 '.split()
=> ['1', '2', '3']
' 1 2 3 '.split(None, 1)
=> ['1', '2 3 ']
WilliamKF
Updated on June 20, 2022Comments
-
WilliamKF almost 2 years
Based on some experiments, it appears to me that the following Python v2.7 code:
def lookup_pattern(pattern, file_containing_patterns): for line in file_containing_patterns: splits = line.split() if splits: if (pattern == splits[0]): return map(lambda x: x.strip(), splits[1:]) return None
Could be simplified as follows to drop the
map
ofstrip()
:def lookup_pattern(pattern, file_containing_patterns): for line in file_containing_patterns: splits = line.split() if splits: if (pattern == splits[0]): return splits[1:] return None
I believe this is true because the
split()
should remove all white space and thus thestrip()
would be a no-op.Are there any cases where in the above two are not identical in effect, if so, what are they?