根据一些实验,在我看来,以下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
可以简化如下,以删除map
的{{1}}:
strip()
我相信这是真的,因为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()
将是无操作。
在上述两种情况中是否存在效果相同的情况,如果是,它们是什么?
答案 0 :(得分:6)
documents表示带有隐式空白分隔符的split
(即split()
没有其他参数)将清除任何“空标记”并且您不需要删除任何东西。由于任何连续的空白系列都可以解释为由空格分隔的空标记列表,这意味着字符串会自动修剪。
如果您使用不同的分隔符拆分或隐式定义了空格,则可能会发生这种情况:
' 1 2 3 '.split()
=> ['1', '2', '3']
' 1 2 3 '.split(None, 1)
=> ['1', '2 3 ']