Easy way to convert a unicode list to a list containing python strings?

encoding, python, python-2.7, unicode

Solution

Encode each value in the list to a string:

[x.encode('UTF8') for x in EmployeeList]

You need to pick a valid encoding; don't use `str()` as that'll use the system default (for Python 2 that's ASCII) which will not encode all possible codepoints in a Unicode value.

UTF-8 is capable of encoding all of the Unicode standard, but any codepoint outside the ASCII range will lead to multiple bytes per character.

However, if all you want to do is test for a specific string, test for a unicode string and Python won't have to auto-encode all values when testing for that:

u'1001' in EmployeeList.values()

Problem

Template of the list is: ``` EmployeeList = [u'<EmpId>', u'<Name>', u'<Doj>', u'<Salary>'] ``` I would like to convert from this ``` EmployeeList = [u'1001', u'Karick', u'14-12-2020', u'1$'] ``` to this: ``` EmployeeList = ['1001', 'Karick', '14-12-2020', '1$'] ``` After conversion, I am actually checking if "1001" exists in EmployeeList.values().

Original source