Python: заменить не ascii символы в списке строк

Я понимаю, что в stackoverflow есть много вопросов без символов ascii, но поскольку я полный новичок, мне не удавалось успешно их реализовывать, и я считаю, что понятие "unicode" трудно понять.

Итак, у меня есть список -

mylist = ["apple", "samsung", "toshiba", "Don’t know", "Can’t recall"] 

Я хотел бы получить доступ к одиночным кавычкам в индексе 3 и 4 и заменить их апострофом.

Я пробовал это:

# -*- coding: utf-8 -*-
mylist = ["hello", "don't know", "Don’t know", "Can't recall"]
for word in mylist:
    word.replace(u"’", "'")
print mylist

Я получаю следующую ошибку:

UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 3: ordinal not in range(128)

Не уверен, что это полезно, но я использую python версии 2.x, и я знаю, что эта проблема может не произойти, если я использовал версию 3.

Спасибо!

Ответ 1

>>> mylist = ["apple", "samsung", "toshiba", "Don’t know", "Can’t recall"]
>>> [item.replace('\xe2\x80\x99',"'") for item in mylist]
['apple', 'samsung', 'toshiba', "Don't know", "Can't recall"]

Если все элементы уже юникод:

>>> mylist = [u"apple", u"samsung", u"toshiba", u"Don’t know", u"Can’t recall"]
>>> [item.replace(u'’',u"'") for item in mylist]
[u'apple', u'samsung', u'toshiba', u"Don't know", u"Can't recall"]