python 内置函数

函数

1. 匿名函数

def func(a, b):
	return a + b
# 构建匿名函数
func1 = lamda a, b: a + b
func1(1, 2) 
dict = {'a': 3, 'b': 2, 'c': 1}

print(min(dict,key=lambda x: dict[x]))

l2 = [('太白', 18), ('alex', 73), ('wusir', 35), ('口天吴', 41)]

print(min(l2))
print(min(l2,key=lambda x: x[1]))  # 输入为元组, 输出为x[1]
# 每次遍历元组,输出的索引位置为1的值跟后面一个元组对应的索引1的值比较,
# 值小则保存,最后输出元组x

# sorted  加key
l1 = [22, 33, 1, 2, 8, 7, 6, 5]
l2 = sorted(l1)
print(l2)


(venv) C:\work\python>python learn.py
[1, 2, 5, 6, 7, 8, 22, 33]

# 如果对下面这个进行排序呢?
l2 = [('太白', 18), ('alex', 73), ('wusir', 35), ('口天吴', 41)]
print(sorted(l2))

# 老样子 会按照元组的字母排列
(venv) C:\work\python>python learn.py
[('alex', 73), ('wusir', 35), ('口天吴', 41), ('太白', 18)]

# 如果想让它以数字排列呢 (加key值, 让他每次遍历的输出x[1]进行排序)
print(sorted(l2, lambda x:x[1]))

# 倒序排列
l2 = [('太白', 18), ('alex', 73), ('wusir', 35), ('口天吴', 41)]
print(sorted(l2, key=lambda x:x[1], reverse=True))

filter 列表推导式的筛选模式

# filter 列表推导式的筛选模式
l1 = [2, 3, 4, 1, 6, 7, 8]
print(i for i in l1 if i > 3)  # 返回的是列表
ret = filter(lambda x: x>3, l1) # 返回的是迭代器
print(ret)
print(list(ret))

map 列表推导式的循环模式

# map 列表推导式的循环模式
l1 = [1, 4, 9, 16, 25]
print([i**2 for i in range(1, 6)])  # 列表
ret = map(lambda x: x**2, range(1, 6))  # 迭代器
print(ret)
print(list(ret))

reduce

# reduce
from functools import reduce
def func(x, y):
    '''
    第1次:   x y : 11 2   x + y =   记录: 13
    第2次:   x y : 13 3   x + y =   记录: 16
    第3次:   x y : 16 4   x + y =   记录: 20
    '''
    return  x + y

l = reduce(func, [11, 2, 3, 4])
print(l)

posted on 2020-07-05 21:09  sunnywillow  阅读(109)  评论(0编辑  收藏  举报