Python divide una cadena con al menos 2 espacios en blanco

Me gustaría dividir una cadena solo donde haya al menos dos o más espacios en blanco.

Por ejemplo

str = '10DEUTSCH GGS Neue Heide 25-27 Wahn-Heide -1 -1' print str.split() 

Resultados:

 ['10DEUTSCH', 'GGS', 'Neue', 'Heide', '25-27', 'Wahn-Heide', '-1', '-1'] 

Me gustaría que se vea así:

 ['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1'] 

 In [4]: import re In [5]: text = '10DEUTSCH GGS Neue Heide 25-27 Wahn-Heide -1 -1' In [7]: re.split(r'\s{2,}', text) Out[7]: ['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1'] 

Como se ha señalado, str no es un buen nombre para su cadena, así que use words lugar:

 output = [s.strip() for s in words.split(' ') if s] 

El .split (”) – con dos espacios – le dará una lista que incluye cadenas vacías y elementos con espacios en blanco al final / al final. La lista de comprensión se repite en esa lista, mantiene cualquier elemento que no if s blanco ( if s ), y .strip () se encarga de cualquier espacio en blanco inicial o posterior.

 In [30]: strs='10DEUTSCH GGS Neue Heide 25-27 Wahn-Heide -1 -1' In [38]: filter(None, strs.split(" ")) Out[38]: ['10DEUTSCH', 'GGS Neue Heide 25-27', ' Wahn-Heide', ' -1', '-1'] In [32]: map(str.strip, filter(None, strs.split(" "))) Out[32]: ['10DEUTSCH', 'GGS Neue Heide 25-27', 'Wahn-Heide', '-1', '-1']