我是Python新手,無法找到解決此問題的解決方法。在Python中使用編碼方法。任何類似於map()的解決方法?
對於列表中的每個中文字符,我必須逐一對每個字符進行編碼。
for character in list:
print character.encode('utf8')
是否有類似map(function, characters)
,在那裏我可以申請的編碼方法列表中的所有字符的東西嗎?
我是Python新手,無法找到解決此問題的解決方法。在Python中使用編碼方法。任何類似於map()的解決方法?
對於列表中的每個中文字符,我必須逐一對每個字符進行編碼。
for character in list:
print character.encode('utf8')
是否有類似map(function, characters)
,在那裏我可以申請的編碼方法列表中的所有字符的東西嗎?
使用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
。
如果這真的是你想要做什麼(我會慎重考慮拒絕falsetru的答案之前),你可以這樣做:
(character.encode('utf8') for character in list)
的直接模擬到map
。如果您想要列表而不是生成器,請使用方括號。
如果你真的想用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']