ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

python学习记录--匿名函数使用的内置方法,迭代器

2022-01-12 20:35:09  阅读:129  来源: 互联网

标签:__ .__ 迭代 python iter next -- print


今日内容概要

  • 集合匿名函数使用的一些内置方法

  • 可迭代对象

  • 迭代器对象

  • for循环的本质

  • 异常捕获

今日内容详细

匿名函数使用的一些内置方法

1.map  映射

#map的底层原理是for循环

l = [1, 2, 3, 4, 5]

 

 2.zip  拉链

l1 = [1, 2, 3, 4, 5, 6]
l2 = ['ly', 'jason', 'tom', 'kevin', 'tony', 'Pony']
l3 = ['a', 'v', 'b', 'c', 'd']

将 l1,l2 的元素两两组合成元祖,放进一个列表

 

 3.max最大,min最小

l = [1, 2, 3, 4, 66,77,8,99,]

取列表l中的最大值

d = {
'ly': 9999999,
'jason': 1000,
'kevin': 2000,
'tom': 20
}

取字典d的最大值

 

 

'''
字典暴露的是k值,所以最大值是tom

按照ASCII码对应的十进制比较
A:65
a:97
0:48
'''

 

 4.filter 过滤

l = [1, 2, 3, 4, 66,77,8,99,]

取出列表 l 大于30 的数

 可迭代对象

迭代:即更新换代,每一次要依赖于上一次的结果

可迭代对象:

python解释器中内置有__iter__()方法的都可以是可迭代对象

a = 1 # 不是
b = 1.22 # 不是
c = 'hello' # 是
d = [1, 2, 3, 4] # 是
f = (1, 2, 3, 4) # 是
h = {'username': 'ly'} # 是
i = {1, 2, 3, 4} # 是
j = True # 不是
k = open('a.txt', 'w', encoding='utf-8') # 是  

有__iter__()的数据类型:字符串,列表,元祖,字典,集合,文件

 

 

len(c)
c.__len__()

'''
c.__iter__()方法也有另外一种简单写法 iter()
所有的__开头的方法都有一个简单写法:函数名()'''

迭代器对象

迭代器对象是内置有__iter__(),并且也拥有__next__方法的才是迭代器对象

生成迭代器对象需要让可迭代对象调用__next__()

迭代器的作用:

提供一种不需要索引取值的方式

c = 'hello' # 是
d = [1, 2, 3, 4] # 是
f = (1, 2, 3, 4) # 是
h = {'username': 'ly'} # 是
i = {1, 2, 3, 4} # 是

 

 

# 文件对象本身就是可迭代对象和迭代器对象(所以不需要__iter__就可以__next__)
k = open('a.txt', 'w', encoding='utf-8') # 是

 

# 对应一个可迭代对象,可以连续多次__iter__(),得到的结果还是本身
# res2 = d.__iter__()
# print(res2.__next__())

练习1

 

 练习2

 

 

 

 for循环的内部原理

l = [1, 2, 3, 4, 5]
# 循环打印出每一个元素,不能使用for循环,还有使用__next__
# res = l.__iter__()
# while True:
# print(res.__next__())

 

for循环的原理:
1. 先把in后面的可迭代对象__iter__()
2. 调用__next__取值
3. 当值取完之后,for内部自定帮你把异常处理了

res = l.__iter__()
while True:
# 检测的代码
print(res.__next__())
# 如果有错,处理掉

 异常捕获

异常就是错误发生的信号,如果不对该信号做出处理,匿名之后的代码都不能正常执行

异常的分类

语法错误:
    print(123
   不允许出现,出现之后,立马修改
逻辑错误
   l = [1, 2, 3]
   print(l[5])

逻辑错误允许出现,都是一般情况,逻辑错误要写到完美

异常的三大部分:

               Traceback:

                     错误发生的位置

              xxxError:

                     错误类型

               xxxError:

                      错误发生的原因

 如何解决错误

语法结构

            try:

                被检测的代码

             except   错误类型 :

                    print(’‘)

             except   错误类型 :

                    print(’‘)

              except   错误类型 :

                    print(’‘)

 

万能异常

except Exception :

可以解决如何错误类型

 

 

l = [1, 2, 3, 4, 5]
练习.# 循环打印出每一个元素,不能使用for循环,还有使用__next__
res = l.__iter__()
while True:
          try:
               print(res.__next__())
          except Exception as e:
               break

 

 

 

 

:

标签:__,.__,迭代,python,iter,next,--,print
来源: https://www.cnblogs.com/mwzcom/p/15793474.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有