Python常用内置函数,迭代器对象
一.常用内置函数
1.1 map() 映射
1 l = [1, 2, 3, 4] 2 res = map(lambda x: x + 1, l) 3 print(list(res))
1.2 zip() 拉链
1 zip() # 拉链 2 l1 = ['11', '22', '33', '99'] 3 l2 = ['jason', 'jack', 'tony', 'lai'] 4 # 传统做法 5 list1 = [] 6 for i in range(len(l1)): 7 list1.append((l1[i], l2[i])) 8 print(list1) 9 # zip做法 10 res = zip(l1, l2) 11 print(list(res))
1.3 max与min max求最大值,min求最小值
1 # max和min 2 l222 = [11, 14, 55, 77, 88, 90] 3 print(max(l222)) 4 print(min(l222)) 5 # 进阶做法 6 d = {'jason': 3000, 'jack': 900, 'lee': 345} 7 print(max(d, key=lambda key: d[key]))
1.4 filter 过滤
1 # 4.filter 过滤 2 l = [11, 22, 33, 44, 55] 3 res = filter(lambda x: x > 30, l) 4 print(list(res)) # [33, 44, 55]
1.5 归总
1 # reduce 归总 2 from functools import reduce 3 new_list = [11, 22, 33, 40] 4 res = reduce(lambda x, y: x + y, new_list) 5 print(res) 6 res1 = reduce(lambda x, y: x + y, new_list, 100) 7 print(res1)
二.可迭代对象
2.1 迭代
迭代即更新换代 每次的更新都必须依赖于上一次的结果。
迭代其实给我们提供了一种不依赖索引取值的方式
2.2 可迭代对象
内置有_ _iter_ _方法的都称为可迭代对象
内置_ _iter_ _的有 字符串 列表 字典 元组 集合 文件对象
_ _iter_ _在调用的时候还有一个简便的写法iter()
1 print(d) 2 print(d.__iter__()) # 等价于调用了一个内置方法 d.get() 3 print(iter(d)) 4 print(d.__len__()) 5 print(len(d))
三.迭代器对象
迭代器对象
既含有_ _iter_ _方法 又含有_ _next_ _方法
如何生成迭代器对象
让可迭代对象执行_ _iter_ _方法
文件对象本身即是可迭代对象又是迭代器对象
迭代器对象无论执行多少次__iter__方法 还是迭代器对象(本身)
1 res = s.__iter__() # 转成迭代器对象 2 print(res.__next__()) # 迭代器对象执行__next__方法其实就是在迭代取值(for循环) 3 print(res.__next__()) 4 print(res.__next__()) 5 print(res.__next__()) 6 print(res.__next__())
四.for 循环本质
for循环内部原理
1.将关键字in后面的数据先调用__iter__方法转为迭代器对象
2.循环执行__next__方法
3.取完之后__next__会报错 但是for循环会自动捕获该错误并处理
1 res = 数据.__iter__() 2 while True: 3 # 检测代码是否会报错 4 res.__next__() 5 # 如果报错了则自动处理掉并结束while循环
五.异常捕获
5.1 什么是异常
代码在运行时出错会导致异常 异常发生后如果没有解决方案则会到底整个程序结束
5.2 异常的三个重要组成部分
1.traceback
翻到最下面从下往上的第一个蓝色字体鼠标左键点击即可跳转到错误的代码所在的行
2.XXXError
错误的类型
3.错误类型冒号后面的内容
错误的详细原因(很重要 仔细看完之后可能就会找到解决的方法)
1 """ 2 基本语法结构 3 try: 4 有可能会出错的代码 5 except 错误类型 as e: 6 出错之后对应的处理机制(e是错误的详细信息) 7 except 错误类型 as e: 8 出错之后对应的处理机制(e是错误的详细信息) 9 except 错误类型 as e: 10 出错之后对应的处理机制(e是错误的详细信息) 11 """
5.3 万能异常
1 try: 2 # int('abc') 3 print(name) 4 # l = [11] 5 # l[100] 6 except Exception: 7 print('你来啥都行 无所谓')