簡體   English   中英

Python:替換字符串列表中的非ascii字符

[英]Python: Replace non ascii characters in a list of strings

我了解關於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,則可能不會發生此問題。

謝謝!

>>> 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"]

如果所有項目都已經是unicode了:

>>> 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"]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM