split()字符串上的Python strip()是否可以执行任何操作?

时间:2013-03-27 17:40:04

标签: python python-2.7 split strip

根据一些实验,在我看来,以下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()将是无操作。

在上述两种情况中是否存在效果相同的情况,如果是,它们是什么?

1 个答案:

答案 0 :(得分:6)

documents表示带有隐式空白分隔符的split(即split()没有其他参数)将清除任何“空标记”并且您不需要删除任何东西。由于任何连续的空白系列都可以解释为由空格分隔的空标记列表,这意味着字符串会自动修剪。

如果您使用不同的分隔符拆分或隐式定义了空格,则可能会发生这种情况:

' 1  2   3  '.split()
=> ['1', '2', '3']

'  1  2   3  '.split(None, 1)
=> ['1', '2   3  ']