下面看下字符串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一样。
1
2
3
4
5
6
|
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) |
结果如下:
1
|
[ '新疆维吾尔自治区' , '广西壮族自治区' , '内蒙古自治区' , '西藏自治区' , '青海省' ] |
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就要对应里面的数字。
所以,这个问题只需一句话解决:
1
2
3
|
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是对列表进行操作
1
2
3
|
s = [ '1.dat' , '10.dat' , '5.dat' ] s.sort(key = lambda i: int (re.match(r '(\d+)' ,i).group())) print s |
总结
以上所述是小编给大家介绍的Python中字符串List按照长度排序,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!