Python实现按中文排序的方法示例

yipeiwu_com6年前Python基础

本文实例讲述了Python实现按中文排序的方法。分享给大家供大家参考,具体如下:

安装中文库

sudo apt-get update
sudo apt-get install language-pack-zh-hans-base
sudo dpkg-reconfigure locales

使用

import locale
locale.setlocale(locale.LC_COLLATE, 'zh_CN.UTF8')
cmp = locale.strcoll
courses.sort(lambda x, y: cmp(x.course_name, y.course_name))

测试用例

输入

# -*- coding: utf-8 -*-
import locale
#locale.setlocale(locale.LC_COLLATE, 'zh_CN.UTF8')
cmp = locale.strcoll
items = list('自挂东南枝'.decode('utf-8'))
print 'before'.center(10, '=')
print ''.join(items)
items.sort(lambda x, y: cmp(x, y))
print 'after'.center(10, '=')
print ''.join(items)

输出

==before==
自挂东南枝
==after===
东挂南枝自

本机测试输出效果如下图:

PS:这里再为大家推荐2款比较实用的相关在线排序工具供大家参考使用:

在线中英文根据首字母排序工具:
http://tools.jb51.net/aideddesign/zh_paixu

在线文本倒序翻转排序工具:
http://tools.jb51.net/aideddesign/flipped_txt

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python数组操作技巧总结》、《Python字符串操作技巧汇总》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python数据结构与算法教程

希望本文所述对大家Python程序设计有所帮助。

相关文章

Python用threading实现多线程详解

多线程 多线程是个提高程序运行效率的好办法,本来要顺序执行的程序现在可以并行执行,可想而知效率要提高很多。但是多线程也不是能提高所有程序的效率。程序的两个极端是‘CPU 密集型'和‘I/...

django 中QuerySet特性功能详解

Book表的数据显示 id title   price publish_id 2 Linux   30    1 3 项塔兰   45    2 4 追风筝的人...

使用python生成目录树

这是一个使用Python生成文件、目录树的程序,其中遇到一个问题是:如何确定某个目录下的某一文件是最后一个遍历的文件。因为最后一个遍历的文件前应添加"└─",非最后一个文件前添加"├─"...

Python使用tkinter模块实现推箱子游戏

Python使用tkinter模块实现推箱子游戏

前段时间用C语言做了个字符版的推箱子,着实是比较简陋。正好最近用到了Python,然后想着用Python做一个图形界面的推箱子。这回可没有C那么简单,首先Python的图形界面我是没怎么...

使用批处理脚本自动生成并上传NuGet包(操作方法)

使用批处理脚本自动生成并上传NuGet包(操作方法)

  Hello 大家好,我是TANZAME,我们又见面了。   NuGet是什么这里就不再重复啰嗦,园子里一搜一大把。今天要跟大家分享的是,在日常开发过程中如何统一管理我们的包,如何通过...