Python: ¿alguna forma de realizar esta división "híbrida" () en cadenas multilingües (por ejemplo, chino e inglés)?

Tengo cadenas que son multilingües y consisten en ambos idiomas que usan espacios en blanco como separador de palabras (inglés, francés, etc.) e idiomas que no lo hacen (chino, japonés, coreano).

Dada una cadena de este tipo, quiero separar la parte en inglés / francés / etc. en palabras usando espacios en blanco como separador, y separar la parte en chino / japonés / coreano en caracteres individuales.

Y quiero poner todos esos componentes separados en una lista.

Algunos ejemplos probablemente aclararían esto:

Caso 1: Cadena solo en inglés. Este caso es fácil:

>>> "I love Python".split()
['I', 'love', 'Python']

Caso 2: Cadena solo en chino:

>>> list(u"我爱蟒蛇")
[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']

En este caso, puedo convertir la cadena en una lista de caracteres chinos. Pero dentro de la lista obtengo representaciones unicode:

[u'\u6211', u'\u7231', u'\u87d2', u'\u86c7']

¿Cómo consigo que muestre los caracteres reales en lugar del Unicode? Algo como:

['我', '爱', '蟒', '蛇']

??

Caso 3: Una mezcla de inglés y chino:

Quiero convertir una cadena de entrada como

"我爱Python"

y lo convierte en una lista como esta:

['我', '爱', 'Python']

¿Es posible hacer algo así?