我是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']