2014-09-20 74 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'] 
相關問題