第1月4周3日

  1. 内置函数二
  2. 匿名函数
  3. 递归函数

min
他会将iterable里面的每个元素自动提取出来。
他会将你的返回值作为比较大小的依据条件
他会将遍历的元素返回回来

内置函数(二)

list() tuple()

reversed 返回一个迭代器. dict不行,报错

slice 构建一个切片对象,用于列表的切片

format() ^ > < ,

bytes

bytes("我啊",encoding="utf-8") decode默认是utf-8 ,写utf,utf8都可以

bytearray 返回一个新字节数组

"可修改字符串"
ret = bytearry("alex",encoding="utf-8")
ret[0] = 65

memoryview

使用场景是网络程序中socket接收和接收数据的解析
使用meoryview之后,避免了不断的字符串拼接和新对象的产生
返回memoryview还有一个优点,在使用struct进行unpack解析时可以直接接收memoryview对象,非常高效(避免大的str进行分段解析时大量的切片操作)。

ord 输入字符找unicode位置
chr 输入位置数字找到其对应的字符

repr()

!!!error 重要
json( ) pickle 序列化模块时。特殊字符串,与python字符串的是区别。用repr( )验证区别
!!!

print(repr("{"alex":"sb"}"))
msg = "alex 是 %r 的人" ("德高望重")

ascii()

ascii("a")

ascii("中") #\u4e2d

sorted()

对所有可迭代的对象进行排序操作。 通过原列表排序形成新列表,原列表不变。

enumrate()

all(),any()

all() 判断可迭代对象全是true才是true, 省却遍历去判断。
any() 判断可迭代对象 一个是True才是True

zip() 拉链方法

ll = [12,3]
tul = ("太白","alex","wusir","女神")
dic = {"name":"日天","age":28,"hobby":"tea"}
print(zip(l1,tul,dic))

以最短的可迭代对象位置为准

filter() 过滤

filter(function,iterable),返回迭代器
与生成器表达式 循环判断模式很像
通过判断可迭代对象在函数内生成的真假来决定是否返回传入的参数

map()

根据提供的函数对指定序列做映射,循环模式.
map(func,iterable)->iterator

匿名函数

lambda表达式 普通函数只有返回值的才可以用匿名函数简化
匿名函数不单独使用

lambda 返回值可以放三元运算

func = lambda **x:len(x)
print(func(**{1:2,2:3,}))
# TypeError: <lambda>() keywords must be strings


func = lambda *x:len(x)
print(func(1,2,3,4,5,6,7))

func = lambda **x:len(x)
print(func(**{"1":2,"2":3,}))

递归

递归的查询文件是文件还是目录

posted @ 2018-08-22 17:29  寓清于浊  阅读(68)  评论(0编辑  收藏  举报