人生苦短 我用python
开始愉快的享(代)受(码)时间:

-
Lambda
- 匿名函数可作为参数传递
- 匿名函数能接收任何数量的参数但只能返回一个表达式的值
形式: lambda: 参数1,参数2... : 表达式
一般形式:
result = lambda x,y : x+y
函数作为参数传递形式:
def calculate(a, b, method):
print("
收到的数字为
", a, b)
return method(a, b)
print(calculate(10, 20, lambda a,b:a+b))
-
map
- 对序列中的item 依次执行function(item)操作
- map(fun, 序列)
list1 = [1, 2, 2, 3, 4, 89]
resutl = map(str, list1) # 将列表中的元素转为str类型
print(resutl) #
-
reduce
- 对序列中的item 顺序迭代调用函数操作, 函数必须要有2个参数,结果返回一个值 (例如:递归求和)
- 在python3中 reduce不是内建函数 需要引入 from funtools import reduce
- reduce(fun,序列)
from functools import reduce
list1 = [1, 2, 2, 3, 4, 89]
result = reduce(lambda x, y: x+y, list1) # 结果: 101 逻辑: 1+2+3+4+5...
print(result)
- filter 过滤
- 依次对序列中的item调用函数操作 进行判断 将符合条件的item保留 组成序列返回
- filter(fun,序列)
list1 = [1, 2, 2, 3, 4, 89]
result = filter(lambda x: x % 2 == 0, list1) # 结果类型
print(list(result)) # 强转类型后结果: [2, 2, 4]
-
sorted 排序
参考 https://www.cnblogs.com/whaben/p/6495702.html
- 接收一个比较函数来实现自定义排序 函数规定按照什么来进行排序
- 默认按照小于运算符排序
- sorted(序列,key=fun, reserve=false(默认false,是否反转))
- key参数的值为一个函数,此函数只有一个参数且返回一个值用来进行比较。这个技术是快速的因为key指定的函数将准确地对每个元素调用。
- list对象本身可以调用sort()方法实现排序 但没有返回值(none)
默认排序
print(sorted(list1)) # [1, 2, 2, 3, 4, 7, 8, 54, 89]
指定排序:
student_tuples = [
('john', 'A', 15),
('jane', 'B', 12),
('dave', 'B', 10),
]
sorted(student_tuples, key=lambda student: student[2]) # 按照年龄排序 结果 [('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]