python – Removing u in list
python – Removing u in list
That u is part of the external representation of the string, meaning its a Unicode string as opposed to a byte string. Its not in the string, its part of the type.
As an example, you can create a new Unicode string literal by using the same synax. For instance:
>>> sandwich = usmörgås
>>> sandwich
usmxf6rgxe5s
This creates a new Unicode string whose value is the Swedish word for sandwich. You can see that the non-English characters are represented by their Unicode code points, ö is xf6
and å is xe5
. The u prefix appears just like in your example to signify that this string holds Unicode text.
To get rid of those, you need to encode the Unicode string into some byte-oriented representation, such as UTF-8. You can do that with e.g.:
>>> sandwich.encode(utf-8)
smxc3xb6rgxc3xa5s
Here, we get a new string without the prefix u, since this is a byte string. It contains the bytes representing the characters of the Unicode string, with the Swedish characters resulting in multiple bytes due to the wonders of the UTF-8 encoding.
arr = [str(r) for r in arr]
This basically converts all your elements in string. Hence removes the encoding. Hence the u which represents encoding gets removed
Will do the work easily and efficiently
python – Removing u in list
The u means the strings are unicode. Translate all the strings to ascii to get rid of it:
a.encode(ascii, ignore)