python实现忽略大小写对字符串列表排序的方法

作者:shichen2014 时间:2021-09-23 04:17:11 

本文实例讲述了python实现忽略大小写对字符串列表排序的方法,是非常实用的技巧。分享给大家供大家参考。具体分析如下:

先来看看如下代码:


string = '''
the stirng
Has many
line In
THE fIle
jb51 net
'''
list_of_string = string.split()
print list_of_string   #将字符串分离开,放入列表中
print '*'*50

def case_insensitive_sort(liststring):
 listtemp = [(x.lower(),x) for x in liststring]#将字符串列表,生成元组,(忽略大小写的字符串,字符串)
 listtemp.sort()#对元组排序,因为元组为:(忽略大小写的字符串,字符串),就是按忽略大小写的字符串排序

return [x[1] for x in listtemp]#排序完成后,返回原字符串的列表

print case_insensitive_sort(list_of_string)#调用起来,测试一下

结果:


['the', 'stirng', 'Has', 'many', 'line', 'In', 'THE', 'fIle', 'jb51', 'net']
**************************************************
['fIle', 'Has', 'In', 'jb51', 'line', 'many', 'net', 'stirng', 'THE', 'the']

另一种方法:

使用内建函数
sorted(iterable[,cmp[, key[,reverse]]])

该函数的官方描述文档如下:

Return a new sorted list from the items in iterable.
key specifies a function of one argument that is used to extract a comparison key from each list element:key=str.lower. The default value isNone.

使用参数key=str.lower

完整代码如下:


string = '''
the stirng
Has many
line In
THE fIle
jb51 net
'''
list_of_string = string.split()
print list_of_string   #将字符串分离开,放入列表中
print '*'*50

def case_insensitive_sort2(liststring):
 return sorted(liststring,key = str.lower)

print case_insensitive_sort2(list_of_string)#调用起来,测试一下

效果一样~

方法三:

使用list的sort方法:

该方法的官方描述文档如下:

The sort() method takes optional arguments for controlling the comparisons.
cmp specifies a custom comparison function of two arguments (list items) which should return a negative, zero or positive number depending on whether the first argument is considered smaller than, equal to, or larger than the second argument: cmp=lambda x,y: cmp(x.lower(), y.lower()). The default value is None.
key specifies a function of one argument that is used to extract a comparison key from each list element: key=str.lower. The default value is None.
reverse is a boolean value. If set to True, then the list elements are sorted as if each comparison were reversed.

具体代码如下:


string = '''
the stirng
Has many
line In
THE fIle
jb51 net
'''
list_of_string = string.split()
print list_of_string   #将字符串分离开,放入列表中
print '*'*50

def case_insensitive_sort3(liststring):
 liststring.sort(cmp=lambda x,y: cmp(x.lower(), y.lower()))

case_insensitive_sort3(list_of_string)
print list_of_string

但这次调用的时候就有区别了。

感兴趣的朋友可以调试运行一下本文实例以加深印象,相信会有新的收获!

标签:python,排序
0
投稿

猜你喜欢

  • 简述Python中的进程、线程、协程

    2021-04-07 11:19:02
  • php开启mysqli扩展之后如何连接数据库

    2023-11-14 17:36:08
  • 可视化工具PyVista多线程显示多窗口的实例代码

    2023-03-17 07:46:28
  • Python中列表list以及list与数组array的相互转换实现方法

    2023-08-24 06:30:15
  • k8s容器互联-flannel host-gw原理篇

    2024-04-27 15:40:07
  • 删除select中所有option选项jquery代码

    2024-04-22 12:58:42
  • keras 读取多标签图像数据方式

    2021-01-30 18:26:48
  • Vue+tracking.js 实现前端人脸检测功能

    2024-05-05 09:24:56
  • Python项目跨域问题解决方案

    2022-12-01 17:39:32
  • Python装饰器与线程结合提高接口访问效率方法

    2021-07-16 11:28:32
  • 从SNS看社会化界面设计(一)

    2009-02-23 12:21:00
  • mysql 事务处理及表锁定深入简析

    2024-01-23 06:34:52
  • 什么是gRPC

    2023-01-16 15:23:53
  • 一个简单的像素画小工具

    2010-01-01 15:33:00
  • C#连接Oracle数据库的多种方法总结

    2024-01-23 12:43:45
  • Python字符串格式化的方法(两种)

    2023-08-28 17:13:10
  • JS实现页面滚动到关闭时的位置与不滚动效果

    2024-04-10 10:47:56
  • python3中获取文件当前绝对路径的两种方法

    2022-04-10 22:36:24
  • vscode添加GIT和SVN的方法示例

    2023-08-24 17:44:38
  • 4行Python代码生成图像验证码(2种)

    2021-02-08 06:08:03
  • asp之家 网络编程 m.aspxhome.com