sorted,reverse和匿名函数
!!!note reversed和reverse
+ 对对象进行反转前者是对所有可迭代对象昂进行反转。将其元素从后面向前面颠倒构建一个新的迭代器。后者指针对列表
```python
l1 = [1,2,4,5,6,7]
print(l1.reverse()) #None
print(l1) #[7, 6, 5, 4, 2, 1
print(reversed(s))
print(reversed(l1))
]```
!!!
!!!note sort和sorted
是对可迭代对象进行排序,可以通过reverse参数来控制按照升序还是降序。默认是升序,同时可以通过他的key参数来控制以什么方式排序。前者是对列表的。后者是对字符串,列表等
```python
sort:对列表修改后,是在源列表的里面进行修改
l1 = [1,2,9,5,-1,7]
l1.sort(key=lambda x:abs(x),reverse=False)
print(l1) #[1, -1, 2, 5, 7, 9
l2 = [("alex",1000),("太白",18),("wusir",500)]
l2.sort(key=lambda k:int(k[1]))
print(l2) #[('太白', 18), ('wusir', 500), ('alex', 1000)]```
sorted:是产生新的迭代对象
l2 = [("alex",1000),("太白",18),("wusir",500)]
print(sorted(l2,key=lambda k:int(k[1])))
!!!
!!!note 匿名函数 lambda
- 普通函数 有且只有返回值的函数才可以用匿名函数进行简化,一行代码能解决
```python
fun2 =lambda x:x**2
def fun2(x): #等同于上面的匿名函数
return x**2
#完成两个数的加法匿名函数
k = lambda x,y:x+y
print(k(1,2)) #3
dic={"k1":10,"k2":100,"k3":30}
#1,利用内置函数匿名函数将dic按照值进行排序。
# print(sorted(dic.items(),key=lambda x:x[1]))
#
# 利用内置函数匿名函数 计算列表的每个数的2倍。
# k = lambda x:x**2
# print(list(map(k,l1)))
l1 = [5,8,11,9,15]
# 利用内置函数匿名函数,将值大于10的留下来。
# print(list(filter(lambda x:x>10,l1)))
```
!!!
!!!note 递归
```pyhtn
def func():
print(666)
fun()
fun()#最大层级999```
!!!