Python中字符串List按照长度排序
下⾯看下字符串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决定;
sortedlistkey:⽤列表元素的某个属性或函数进⾏作为关键字,有默认值,迭代集合中的⼀项;
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按照长度排序,希望对⼤家有所帮助,如果⼤家有任何疑问请给我留⾔,⼩编会及时回复⼤家的。在此也⾮常感谢⼤家对⽹站的⽀持!
如果你觉得本⽂对你有帮助,欢迎转载,烦请注明出处,谢谢!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论