2014-12-08 18 views
0

的UTF8字符的列表我的波斯语字符(UTF-8)像这样的列表:更换在Python

my_list = ['ﯾ', 'ﻲ', 'ﻴ'] 

而且我想替换字符的每次出现在这个名单与另一个字符文本像一个'。现在,我的代码是这样的:

text = text.replace('ﻴ', 'a') 
text = text.replace('ﻲ', 'a') 
text = text.replace('ﯾ', 'a') 

有没有办法做到这一点的一个镜头,例如在Python 3使用正则表达式和列表?

+1

那不是UTF-8,至少不会出现在Python 3 – 2014-12-08 05:19:52

+0

究竟是不是UTF-8? – TJ1 2014-12-08 05:20:54

+0

那些字符串。 – 2014-12-08 05:21:04

回答

5
3>> 'ﻴ ﻲ ﯾ'.translate({0xfbfe: 'a', 0xfef2: 'a', 0xfef4: 'a'}) 
'a a a' 

str.translate()

+0

你太快了。 – 2014-12-08 05:23:47

+0

你是如何得到像'0xfbfe'等代码的? – TJ1 2014-12-08 05:26:13

+1

这些是字符的[代码点](http://en.wikipedia.org/wiki/Code_point)。 – 2014-12-08 05:29:33

0

你可以使用一个for循环,而不是:

for char in my_list: 
    text = text.replace(char,'a') 

这样你的列表可以是任意长度,但你的代码不会更改的大小。另外你不重复代码。

+0

感谢您的回答,但我不想使用'for'循环。我知道在使用're'的Python中,可以按照我想要的做一些事情,但我不知道如何使用UTF-8字符来做到这一点。 – TJ1 2014-12-08 05:24:37