Split и русские строки в Python 2.X
Потому что печать списка печатает repr() от его элементов.
см. Container’s __str__ uses contained objects’ __repr__

Можно например печатать так:
for item in lst: print item


Еще немного инфы здесь: см. с фразы Since this question involves a lot of confusing unicode stuff, I thought I'd offer an analysis of what was going on here.
То есть это нормальные строки — напечатайте, скажем, первую print my_str.replace(' ', '').split('^')[0] и увидите.