What you see is a representation of __repr__() a Unicode string that includes u to make it understandable. If you do not want you to be able to print the object (using __str__ ) - this works for me:
print [str(x) for x in l]
It is probably best to read python unicode and encode using the proper Unicode codec:
print [x.encode() for x in l]
[edit]: to clarify the reprint and why u exists, the goal is to provide a convenient string representation "to return a string that will give an object with the same value when passed to eval ()", i.e. you can copy and paste the printed output and get the same object (a list of strings in Unicode).
source share