• 【python】字符排序


    一、摘要

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

    二、排序

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

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

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

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

    以下是网上找的例子:

        pinyin = file('pinyin.txt').read().decode('utf-8').split('
    ')
        pinyin_dict = {}
        for line in pinyin:
            if not line.strip():
                continue
            tmp = line.split('	')
            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 '
     name:',name.encode('utf-8')
            tmp_dict = []
            for j in name:
                print '
     ---+',j.encode('utf-8')
                print '
     ---+',pinyin_dict.get(j)
                tmp_dict.append(pinyin_dict.get(j)) 
            print ''.join(tmp_dict)
    计划、执行、每天高效的活着学着
  • 相关阅读:
    [CQOI2011]放棋子
    [JSOI2015]染色问题
    [ZJOI2016]小星星
    [NOI2018]你的名字
    bzoj2393 Cirno的完美算数教室
    [CQOI2012]局部极小值
    CF768F Barrels and boxes
    bzoj4402 Claris的剑
    烽火SATA SSD DSS200-B
    添加防火墙规则
  • 原文地址:https://www.cnblogs.com/huxiaoyun90/p/4281160.html
Copyright © 2020-2023  润新知