I think what you're actually surprised by here is that printing a single string doesn't do the same thing as printing a list of strings—and this is true whether they're Unicode or not:
>>> hobby1 = u'Dizziness'
>>> hobby2 = u'Vértigo'
>>> hobbies = [hobby1, hobby2]
>>> print hobby1
Dizziness
>>> print hobbies
[u'Dizziness', u'Vxe9rtigo']
Even without the u
, you've got those extra quotes, not to mention that backslash escape. And if you try the same thing with str
byte strings instead of unicode
strings, you'll still have the quotes and escapes (plus you might have mojibake characters if your source file and your terminal have different encodings… but forget that part).
In Python, every object can have two different representations: the end-user-friendly representation, str
, and the programmer-friendly representation, repr
. For byte strings, those representations are Painting
and 'Painting'
, respectively. And for Unicode strings, they're Painting
and u'Painting'
.
The print
statement uses the str
, so print hobby1
prints out Painting
, with no quotes (or u
, if it's Unicode).
However, the str
of a list uses the repr
of each of its elements, not the str
. So, when you print hobbies
, each element has quotes around it (and a u
if it's Unicode).
This may seem weird at first, but it's an intentional design decision, and it makes sense once you get used to it. And it would be ambiguous to print out [foo, bar, baz]
—is that a list of three strings, or a list of two strings, one of which has a comma in the middle of it? But, more importantly, a list is already not a user-friendly thing, no matter how you print it out. My hobbies are [Painting, Stargazing]
would look just as ugly as My hobbies are ['Painting', 'Stargazing']
. When you want to show a list to an end-user, you always want to format it explicitly in some way that makes sense.
Often, what you want is as simple as this:
>>> print 'Hobbies:', ', '.join(hobbies)
Hobbies: Painting, Stargazing
Or, for Unicode strings:
>>> print u'Hobbies:', u', '.join(hobbies)
Hobbies: Painting, Stargazing