¿Una tira de Python () en una cadena dividida () hace algo?

Basado en algunos experimentos, me parece que el siguiente código de 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 

Podría simplificarse de la siguiente manera para eliminar el map de la 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 

Creo que esto es cierto porque la split() debería eliminar todos los espacios en blanco y, por lo tanto, la strip() sería un no-op.

¿Hay algún caso en el que los dos anteriores no tengan un efecto idéntico? En caso afirmativo, ¿qué son?

    Los documentos indican que la split con el delimitador de espacio en blanco implícito (es decir, split() sin más argumentos) borrará cualquier “token vacío” y no es necesario que elimine nada. Como cualquier serie consecutiva de espacios en blanco podría interpretarse como una lista de tokens vacíos delimitados por espacio, eso significará que las cadenas se recortarán automáticamente.

    Si, en lugar de eso, se divide con un delimitador diferente o se define implícitamente el espacio en blanco, esto puede suceder:

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