Эти являются обычными строками, вы просто видите их внутреннее представление (поскольку вы не печатаете строку, вы печатаете список во втором примере). У
for s in my_str.replace(' ', '').split('^'):
print s
и вы увидите. И наоборот, попробуйте
print repr(my_str.replace(' ', ''))
и посмотрим, что будет потом.