匿名函数
有名函数
def func():
print('from func')
func()
这是一个有名函数,func就是它的名字
匿名函数
lambda x,y: x+y
匿名函数没有名字,也不能调用函数,一般与内置方法联用
lambda 参数: 返回值
与内置函数联用
max()方法
salary_dict = {
'nick': 3000,
'jason': 100000,
'tank': 5000,
'sean': 2000
}
如果想取上述薪资最多的名字,可以
print(max(salary_dict))
# 打印结果:tank
这里是按照字典的key比较大小,但我们要的是value比较大小,返回key
def func(name):
return salary_dict[name]
print(max(salary_dict, key=func))
# 打印结果:jason
用匿名函数
print(max(salary_dict, key=lambda name: salary_dict[name]))
sorted()
对薪资进行排序, 可以用sorted方法
sorted()工作原理:
- 首先将可迭代对象变成迭代器对象
- res=next(迭代器对象),将res当做参数传给第一个参数指定的函数,然后将该函数的返回值当做判断依据。
def func(item):
return salary_dict[item]
print(sorted(salary_dict, key=func, reverse=True)) # reverse是反转
# 打印结果: ['jason', 'tank', 'nick', 'sean']
匿名函数:
print(sorted(salary_dict, key=lambda name: salary_dict[name]))
map()
map()工作原理:
- 首先将可迭代对象变成迭代器对象
- res=next(迭代器对象),将res当做参数传给第一个参数指定的函数,然后将该函数的返回值作为map()方法的结果之一。
map()方法 就是一种映射,可以给可迭代对象一种对应关系
res = map(lambda x: x + 1, [1, 2, 3])
print(list(res))
# 打印结果:[2,3,4]
filter()
filter()工作原理:
- 首先将可迭代对象变成迭代器对象
- res=next(迭代器对象),将res当做参数传给第一个参数指定的函数,然后filter会判断函数的返回值的真假,如果为真则留下。
filter可以删选
res = filter(lambda x: x > 3, [1, 2, 3, 4, 45, 5, 0])
print(list(res))
# 打印结果:[4,45,5]
内置函数
掌握
方法 | 用法 |
---|---|
bytes() | 解码字符:print(bytes('你好', encoding='utf-8')) |
chr() / ord() | chr()参考ASCII码表将数字转成对应字符;ord()将字符转换成对应的数字 |
divmod() | print(divmod(10, 3)) 打印结果:(3, 1) |
enumerate() | 带索引的迭代 |
eval() | 把字符串的引号去掉,留下来的是什么就是什么 |
hash() | 是否哈希 |
了解
方法 | 作用 |
---|---|
abs | 绝对值 |
all | 如果全为真则为True,否则为False |
any | 只有有一个为真,则为真,否则为假 |
bin | 转换为二进制 |
oct | 八进制 |
hex | 十六进制 |
dir | 列出模块所有方法 |
frozenset | 不可变集合 |
globals/loals | 列出所有全局变量/当前位置所有变量 |
pow | 幂 |
round | 四舍五入 |
slice | 切片 |
sum | 求和 |
__import__ |
通过字符串导入模块 |