【python】字符排序

一、摘要

最近在做一个排序的东西,被python的字符串编码格式折腾了一会儿,总结下

二、排序

英文排序不用说,sort sorted 比较好,内部已经实现

主要是中文,方法是查表获取拼音再进行排序。但编码格式很让人无奈,utf-8是1个字节,unicde是2个字节,在打印获取数据的过程中很无奈。

encode 可将unicde字符串转化为指定格式

decode 可将指定格式支付串转为unicode格式

以下是网上找的例子:

    pinyin = file('pinyin.txt').read().decode('utf-8').split('\n')
pinyin_dict = {}
for line in pinyin:
if not line.strip():
continue
tmp = line.split('\t')
pinyin_dict[tmp[0].strip()] = re.sub(r'\d*','',tmp[1].strip()) names_sort = sorted (names, key=lambda x:''.join([pinyin_dict.get(i) for i in x]))

lamba表达式理解为以下:

    for name in names:
print '\n name:',name.encode('utf-8')
tmp_dict = []
for j in name:
print '\n ---+',j.encode('utf-8')
print '\n ---+',pinyin_dict.get(j)
tmp_dict.append(pinyin_dict.get(j))
print ''.join(tmp_dict)
上一篇:win7系统安装VS2013后,连不上远程sqlserver数据库解决办法


下一篇:如何在客户端配置ODBC来访问远程DB2 for Windows服务器