Ben*_*age 1 python string unicode permutation
我有字符串:
a = "ÀÁÂÃÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜ" b = "àáâãäèéçêëìíîïòóôõöùúûüÿ"
Run Code Online (Sandbox Code Playgroud)
我想创建字符串
"ÀàÁáÂâ..."
Run Code Online (Sandbox Code Playgroud)
即将绳子分成两半然后将两半拉在一起.
我尝试了天真zip(a, b)
但这不起作用.我认为这是由于unicode的问题.
有谁知道我怎么能得到我想要的结果?
在Python 2.x中,默认情况下字符串不是unicode.处理unicode数据时,您必须执行以下操作:
带u
字符的前缀字符串文字:a = u'ÀÁÂÃÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜ'
,或
如果你想避免使用u
前缀,并且你正在使用的模块是否足够兼容,请使用from __future__ import unicode_literals
import来将字符串文字默认解释为unicode
如果直接在Python代码中编写unicode字符串文字,请以utf-8
格式保存.py文件,以便正确解释文字.Python 2.3+将解释utf-8 BOM ; 一个好的做法是在文件的开头添加一个特定的注释行来表示编码# -*- coding: utf-8 -*-
,或者
您还可以继续保存.py文件ascii
,但是您需要转义文字中的unicode字符,这些字符可能性较差:'ÀÁÂÃ'
应该变为'\xc0\xc1\xc2\xc3'
一旦满足这些条件,剩下的就是在这些unicode字符串上应用算法,就像使用str版本一样.以下是__future__
导入问题的一种可能解决方案:
from __future__ import unicode_literals
from itertools import chain
a = "ÀÁÂÃÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜ"
b = "àáâãäèéçêëìíîïòóôõöùúûüÿ"
print ''.join(chain(*zip(a,b)))
>>> ÀàÁáÂâÃãÈäÉèÊéËçÌêÍëÎìÏíÒîÓïÔòÕóÖôÙõÚöÛùÜú
Run Code Online (Sandbox Code Playgroud)
进一步参考:
归档时间: |
|
查看次数: |
1431 次 |
最近记录: |