3/03课后总结
配合匿名函数使用的方法
1. map(函数名, 要遍历的数据) # 内部本质就是for循环,再记住两个参数的位置和作用
2. zip(拉链)
l = [1, 2, 3, 4, 5, 6, 7, 8]
l1 = [11, 21, 31, 41, 51, 61, 71, 81]
l2 = [1, 2, 3, 4]
l3 = [12, 22, 32, 42, 52, 62, 72, 82]
l4 = [13, 23, 33, 43, 53, 63, 73, 83]
res = zip(l, l1, l2, l3, l4)
print(list(res))
3. max和min
print(max(l1))
print(min(l4))
"""
如果是字典就是比较key键的大小
"""
dic = {
'zhangsan': 1000,
'lisi': 2000,
'wanger': 3000,
'444': 4000
}
print(max(dic))
print(max(dic, key=lambda key: dic[key]))
print(min(dic))
print(min(dic, key=lambda key: dic[key]))
# 如果函数中key值被传了函数,那么就根据所传的返回值进行比较
4. 过滤
res = filter(lambda x: x > 20, l1)
print(list(res))
可迭代对象
"""
迭代就是每次的结果都需要上一次的结果
内置有__iter__方法的对象都是可迭代对象
目前所学的凡是可以用for遍历的都是可迭代对象
"""
print(c.__iter__()) = print(iter(c)) # 这两种方式相等
迭代器对象
"""
既有__iter__方法, 也含有__next__方法的称为迭代器对象
文件对象即是可迭代对象又是迭代器对象
可迭代对象调用__iter__方法
可以给我们提供一种不依赖索引取值的方法
"""
l = [1, 2, 3, 4, 5, 6, 7]
x = l.__iter__()
print(x.__next__()) # 1
print(x.__next__()) # 2
print(x.__next__()) # 3
print(l.__iter__().__next__()) # 1
print(l.__iter__().__next__()) # 2
print(l.__iter__().__next__()) # 3
for循环内部原理
"""
for循环内部执行流程:
1. 把关键字in后面的数据类型转为了迭代器 __iter__
2. 循环next取值
3. next取值完毕之后也报错了,自动处理错误并且结束while循环
"""
l = [1, 2, 3, 4, 5, 6, 7]
x = l.__iter__()
while True:
print(x.__next__())
# 这么写会报错,其实for也会报错,只是不显示出来
捕捉异常
"""
异常就是错误的信号,如果不处理,异常后面的都不会正常执行
异常由Traceback开始
XXXError:这个现实错误的类型
:后面会显示错误的原因
语法错误是不被允许的
逻辑错误虽然允许但是要避免
常见的错误类型有:
NameError
IndexError
KeyError
ValueError
ZeroDivisionError
"""
# 捕捉异常:
try:
被监测的代码
except 错误的类型1 as e:
错误处理,e:错误的原因
# 万能捕捉
except Exception as e:
print(e)
"""
try except异常捕捉需要注意
1. try里面被监测的代码尽量少
2. 在明显没有错误的代码不要被捕捉
"""
标签:总结,03,.__,迭代,iter,__,课后,print,next
From: https://www.cnblogs.com/juzixiong/p/17177001.html