python中没有直接的方法对字符串进行排序,原因是字符串类型是不允许直接修改元素的。
字符串比较的规则是由左边开始最前面的字符对应ascll码表中的大小决定的,与长度无关,比如下面这个比较:
进阶,如何根据字符串数组长度排序
我们可以使用sort方法和sorted函数根据长度进行排序,方法是将键作为参数传递给排序的方法。在这我贴上sorted方法与sort的区别:
实现如下:
# 字符串列表
strings = ['Python', 'C', 'Java', 'Javascript', 'React', 'Django', 'Spring']
# 以升序对列表进行排序-长度
strings.sort(key=len)
# 打印排序列表
print(strings)
结果:
['C', 'Java', 'React', 'Python', 'Django', 'Spring', 'Javascript']
我们可以将任何函数传递给key参数。sort方法将根据给定给键参数的函数的返回值对列表进行排序
再进一步,根据字符串的值进行排序:
#字符串列表
strings = ['7', '34', '3', '23', '454', '12', '9']
#以升序对列表进行排序-int值
sorted_strings = sorted(strings, key=int)
#打印排序列表
print(sorted_strings)
输出结果;
['3', '7', '9', '12', '23', '34', '454']
当然我们也可以采用列表生成式来实现:
strings = ['7', '34', '3', '23', '454', '12', '9']
new_strings = sorted([int(element) for element in strings])
print(new_strings)
结果同上,总结一下,还是得基础扎实,在这我只写出了三种,但只要了解了字符串比较的规则,要写字符串的排序就很简单,怎么写都行。