2014-09-20 78 views

回答

3

使用str.join (unicode.join)将字符加入到一个字符串中并进行编码。

u''.join(characters).encode('utf8') 

>>> characters = [u'世', u'上'] 

>>> u''.join(characters) 
u'\u4e16\u4e0a' 
>>> print u''.join(characters) # unicode 
世上 

>>> u''.join(characters).encode('utf-8') 
'\xe4\xb8\x96\xe4\xb8\x8a' 
>>> print u''.join(characters).encode('utf-8') # str (encoded) 
世上 

BTW,不要使用list作为变量名。它阴影内置函数/类型list

2

如果这真的是你想要做什么(我会慎重考虑拒绝falsetru的答案之前),你可以这样做:

(character.encode('utf8') for character in list) 

的直接模拟到map。如果您想要列表而不是生成器,请使用方括号。

2

如果你真的想用map()functools.partial()可以给你一个可以调用与一个或多个参数“预填充”:

from functools import partial 
utf8 = partial(unicode.encode, encoding="utf8") 

使用例:

>>> map(utf8, [u'毛', u'泽', u'东']) 
['\xe6\xaf\x9b', '\xe6\xb3\xbd', '\xe4\xb8\x9c'] 
相关问题