根据一些实验,在我看来,以下 Python v2.7 代码:
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
可以简化如下,删除 strip()
的 map
:
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
我相信这是真的,因为 split()
应该删除所有空格,因此 strip()
将是空操作。
是否存在以上两者在效果上不相同的情况,如果是,它们是什么?
最佳答案
documentation指示带有隐式空白定界符的 split
(即没有进一步参数的 split()
)将清除任何“空标记”,您不需要剥离任何内容.由于任何连续的空格系列都可以解释为由空格分隔的空标记列表,这意味着字符串会自动修剪。
如果您使用不同的分隔符或隐式定义空格,则可能会发生这种情况:
' 1 2 3 '.split()
=> ['1', '2', '3']
' 1 2 3 '.split(None, 1)
=> ['1', '2 3 ']
关于python - split() 字符串上的 Python strip() 有什么作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15665680/