学到了林海峰,武沛齐讲的Day16完
函数嵌套
foo()()() ==== foo()>>>gxr gxr()>>>wsb wsb()>>执行wsb函数
lambda 一行的函数,做简单逻辑,计算.
func=lambda x,y,z:x+y+zprint(func(1,2,3))
===6
map函数 处理序列中的每个元素,得到的结果是一个‘列表’,该‘列表’元素个数及位置与原来一样
msg='linhaifeng'
print(list(map(lambda x:x.strip("n"),msg))) 将列表中为"n"边""
===['l', 'i', '', 'h', 'a', 'i', 'f', 'e', '', 'g']
filter函数 遍历序列中的每个元素,判断每个元素得到布尔值,如果是True则留下来
msg='linhaifeng'
print(list(filter(lambda n:n.strip("n"),msg))) 将列表中为"n"的去掉
=====['l', 'i', 'h', 'a', 'i', 'f', 'e', 'g']
reduce函数 处理一个序列,然后把序列进行合并操作
from functools import reduce num_l=range(1,5) print(reduce(lambda x,y:x*y,num_l,1)) 1*1*2*3*4 print(reduce(lambda x,y:x*y,num_l)) 1*2*3*4 print(reduce(lambda x,y:x+y,num_l,1)) 1+1+2+3+4 print(reduce(lambda x,y:x+y,num_l)) 1+2+3+4
24
24
11
10
还有其他内置函数
abs(-1) >> 1 绝对值
all([1,2])>>>Flase 列表里面全是Flase 则是Flase
any([0,''])>>>True 列表里面全是True 则是True
bin(3)>>>>0b11 转换2进制
bool() 布尔值
name='你好'
print(bytes(name,encoding='utf-8')) bytes>>>>字符串变字节
bytes(name,encoding='utf-8').decode('utf-8') 将name用utf-8解码成字节后,再用utf-8编码成字符
chr(80) 将10进制ASCII转化成字符
dir() 打印对象得到方法
divmod(11,3)>>>>(3,2) 11/3=商3 余2
dic={'name':'alex'}
dic_str=str(dic)
print(dic_str) 字典转换成字符
eval(dic_str) 字符转换成字典
eval('1+1') 将字符串中的计算出来
hash() 不可变类型换成Hash 将一个文件做hash 核对hash后不变,等于没有修改
hex() 16进制
act() 8进制
isinstance('abc',str) 判断'abc'是不是str 结果为bool
globals() 全局变量
locals() 局部变量
l=[1,3,100,-1,2]
print(max(l)) 最大值
print(min(l)) 最小值
以前都是学到这里就卡住了..激动,,下节课就学到没听过的了
enumerate()
wsb={"王":35,"秋":30}
for x,y in enumerate(wsb,55):
print(x,y)=======55 王 56 秋 将字典wsb用55开始得到王和秋,并赋值给x,y
lower() 大写变小写
clear() 清空
isalpha() 判断字母
get() 查找