Python中字符串List按照长度排序

yipeiwu_com6年前Python基础

下面看下字符串List按照长度排序(python)的实现方法

myList = ['青海省','内蒙古自治区','西藏自治区','新疆维吾尔自治区','广西壮族自治区']

1、首先得到每个字符串长度

2、排序,选择sorted或者 list.sort()进行排序

内置sorted返回一个新的列表,而list.sort是对列表进行操作

sorted(iterable, cmp=None, key=None, reverse=False)

iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。

返回值:是一个经过排序的可迭代类型,与iterable一样。

myList = ['青海省','内蒙古自治区','西藏自治区','新疆维吾尔自治区','广西壮族自治区'] 
myList1 = sorted(myList,key = lambda i:len(i),reverse=True) 
print(myList1) 
myList = ['青海省','内蒙古自治区','西藏自治区','新疆维吾尔自治区','广西壮族自治区'] 
myList.sort(key = lambda i:len(i),reverse=True) 
print(myList)

结果如下:

['新疆维吾尔自治区', '广西壮族自治区', '内蒙古自治区', '西藏自治区', '青海省'] 

PS:下面看下列表中字符串按照某种规则排序的方法(python)

有时候处理数据时,想要按照字符串中的数字的大小进行排序。

譬如,存在一组记录文件,分别为‘1.dat','2.dat'...

当我把该文件夹中的所有记录文件名读到一个列表中,这些字符串的排列方式为:

如何让这些字符串按照数字排列?

1、首先通过正则表达式,提取出字符串中的数字

2、排序,选择built-in函数sorted进行排序

sorted(iterable, cmp=None, key=None, reverse=False)

iterable:是可迭代类型;
cmp:用于比较的函数,比较什么由key决定;
key:用列表元素的某个属性或函数进行作为关键字,有默认值,迭代集合中的一项;
reverse:排序规则. reverse = True  降序 或者 reverse = False 升序,有默认值。
返回值:是一个经过排序的可迭代类型,与iterable一样。

所以说排序方式按照数字拍的话,key就要对应里面的数字。

所以,这个问题只需一句话解决:

s = ['1.dat','10.dat','5.dat']
new = sorted(s,key = lambda i:int(re.match(r'(\d+)',i).group()))
print new

 得到的结果即为

 对于该操作,同样可以使用list.sort(),python2.4之后,list.sort和sorted都添加了一个key参数用来指定一个函数

不同的地方是:内置sorted返回一个新的列表,而list.sort是对列表进行操作

s = ['1.dat','10.dat','5.dat']
s.sort(key = lambda i:int(re.match(r'(\d+)',i).group()))
print s 

总结

以上所述是小编给大家介绍的Python中字符串List按照长度排序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对【听图阁-专注于Python设计】网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

相关文章

分享8点超级有用的Python编程建议(推荐)

分享8点超级有用的Python编程建议(推荐)

我们在用Python进行机器学习建模项目的时候,每个人都会有自己的一套项目文件管理的习惯,我自己也有一套方法,是自己曾经踩过的坑总结出来的,现在在这里分享一下给大家,希望多少有些地方可以...

使用11行Python代码盗取了室友的U盘内容

使用11行Python代码盗取了室友的U盘内容

序言 那个猥琐的家伙整天把个U盘藏着当宝,到睡觉了就拿出来插到电脑上。 我决定想个办法看他U盘里都藏了什么,直接去抢U盘是不可能的,骗也是不可能的。那不是丢我Python程序员的脸? 我...

Python正则表达式使用范例分享

作为一个概念而言,正则表达式对于Python来说并不是独有的。但是,Python中的正则表达式在实际使用过程中还是有一些细小的差别。 本文是一系列关于Python正则表达式文章的其中一部...

Python编程实现的简单神经网络算法示例

Python编程实现的简单神经网络算法示例

本文实例讲述了Python编程实现的简单神经网络算法。分享给大家供大家参考,具体如下: python实现二层神经网络 包括输入层和输出层 # -*- coding:utf-8 -*-...

浅谈python 线程池threadpool之实现

首先介绍一下自己使用到的名词: 工作线程(worker):创建线程池时,按照指定的线程数量,创建工作线程,等待从任务队列中get任务; 任务(requests):即工作线程处理的任务,任...