备战蓝桥杯——sort函数
- 排列字母
- lambda匿名函数
排列字母
链接: 排列字母
不用多说,很简单的签到题,我们先来了解一下sort函数的用法
list.sort(cmp=None, key=None, reverse=False)
cmp:进行比较的方法(可以自定义排序的方法,通常用lambda函数来实现)
key:进行比较的元素
reverse:是否对排列好的元素进行倒序处理
了解完sort函数,我们回到题目上来
题目要求我们对str进行排序,应该怎样操作?
我们知道,sort函数是对list中的元素进行排序的,例如:
>>> a=['cde', 'bcd', 'abc']
>>> a.sort()
>>> print(a)
['abc', 'bcd', 'cde']
如果我们:
>>>s = "WHERETHEREISAWILLTHEREISAWAY"
>>>s=list(s)
>>>s.sort()
>>>print(s)
['A', 'A', 'A', 'E', 'E', 'E', 'E', 'E', 'E', 'H', 'H', 'H', 'I', 'I', 'I', 'L', 'L', 'R', 'R', 'R', 'S', 'S', 'T', 'T', 'W', 'W', 'W', 'Y']
为什么输入一个字符串会返回单个排序字母?
当list中有多个字符串时,list中的最小单位就是字符串,sort会自动返回排序好的字符串。而只有一个字符串时,会自动迭代字符串中的字母进行比较并返回。
运用sort函数我已经得到排列好的单个字母了,接下来我们用str.join()进行连接就好了
完整代码:
s = "WHERETHEREISAWILLTHEREISAWAY"
s=list(s)
s.sort()
print("".join(s))
lambda匿名函数
我们可以简单的将lambda函数的形式记为:
lambda 参数(可以不止一个):
对参数进行运算并返回的表达式
与map结合使用: