码迷,mamicode.com
首页 > 编程语言 > 详细

【python】字符排序

时间:2015-02-09 12:42:39      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

一、摘要

    最近在做一个排序的东西,被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)

 

【python】字符排序

标签:

原文地址:http://www.cnblogs.com/huxiaoyun90/p/4281160.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!