当前位置: 首页 > news >正文

Python中常用内置函数下【含代码理解】

11.6  next():主要用于获取迭代器中的下一个元素

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]def is_even(number):return number % 2 == 0iterator = filter(is_even, arr)
# 迭代器的元素是一个一个往外"蹦" 一个一个计算的 而不是全部计算出来
print(next(iterator))
print(next(iterator))
print(next(iterator))
print(next(iterator))
print(next(iterator))
# print(next(iterator)) # StopIteration
# 当一个迭代器被next用完时,则迭代器失效,因为已经计算完成
# 如果还想遍历元素,那么就只能重新创建新的迭代器
# 此时的iterator已经没有元素可以计算了!iterator = filter(is_even, arr)
# next(iterator, default)
# default 当迭代器被耗尽时,则返回这个默认值,作为一个结束的标记来使用
# 不能赋值迭代器包含的元素 如果存在 则中断循环的计算
while True:num = next(iterator, 2)if num == 2:breakprint(num)
# 后续依旧可以继续迭代元素,直到迭代器耗尽为止
print(next(iterator))arr = [1,2,3]
arr = [x for x in range(10)] # 列表推导式
# print(next(arr))
# print(next(arr)) # TypeError: 'list' object is not an iterator
arr = (x for x in range(10)) # 列表解析式 -> 迭代器
while True:num = next(arr, -1)if num == -1:breakprint(num)arr = [(x for x in range(10))] # [迭代器对象]
print(arr)arr = list((x for x in range(10)))
print(arr)

11.7  iter() :获取某个可迭代对象的迭代器

arr = [1, 2, 3]
iterator = iter(arr)
# 将一组元素 转为 迭代器
print(next(iterator))
s = {3, 1, 2}
print(s)
iterator = iter(s)
print(next(iterator))dic = {"name": "张三", "age": 18, "height": 180}
print(dic.keys())
# 将所有键的集合封装为一个迭代器
iterator = iter(dic.keys())
print(next(iterator))
print(dic.values())
# 将所有值的集合封装为一个迭代器
iterator = iter(dic.values())
print(next(iterator))for key in dic.keys():  # 实质上也是先将dic.keys()转迭代器再进行遍历 一个一个计算print(key)keys = set(dic.keys())
print(keys)# 传入一个自定义的迭代函数
num = 1def get_number():global numresult = numnum += 1return result# for i in range(10):
#     print(get_number())# source 指的就是迭代函数 sentinel 指的是迭代上限
iterator = iter(get_number, 100)
for item in iterator:print(item)
print("此时的num", num)num = 1
iterator = iter(get_number, 10)
lst = list(iterator)
print(lst)

11.8  map():用于可迭代对象中的每个元素应用指代定的函数,并返回一个迭代器

arr = ['A', 'B', 'C', 'D', 'E']def to_lower(letter):return letter.lower()iterator = map(to_lower, arr)
while True:letter = next(iterator, -1)if letter == -1:breakprint(letter)
arr = list(map(to_lower, arr))
print(arr)arr1 = [1, 2, 3, 4]
arr2 = [5, 6, 7]def add(x, y):return x + yarr3 = list(map(add, arr1, arr2))
# 结果以arr1和arr2长度最短的为主
print(arr3)

11.9   reversed() :反转,返回的是一个迭代器,用于逆序遍历,不对原数据进行改变

arr = [1,2,3,4,5,6,7,8,9,10]
arr.reverse() # 列表对象函数 反转 修改原列表
print(arr)arr = [1,2,3,4,5,6,7,8,9,10]
lst = list(reversed(arr)) # 内置函数 反转 新建反转后的列表 不影响原列表
print(lst)
print(arr)

11.10  zip():将多个可迭代对象中对应位置的元素打包成一个个元组,然后返回这些元组组成的迭代器

# 将多个序列拼成元组
arr1 = [1,2,3,4,5]
arr2 = ['A','B','C','D','E']
arr3 = ['a','b','c','d','e']
# 同样以最短为主
iterator = zip(arr1,arr2,arr3)
lst = list(iterator)
print(lst)# 将多个元组解析出多个序列
lst = [(1, 'A', 'a'), (2, 'B', 'b'), (3, 'C', 'c'), (4, 'D', 'd'), (5, 'E', 'e')]
l1,l2,l3 = zip(*lst)
print(l1)
print(l2)
print(l3)

http://www.dtcms.com/a/570489.html

相关文章:

  • QuickDruid
  • Java 文件上传-阿里云OSS对象存储
  • 国外 网站源码西部建设公司官网
  • 深圳做h5网站设计济南冰河世纪网站建设
  • 如何为公司做网站施工企业风险防控
  • 宁波市高等级公路建设指挥部网站wordpress建企业网站设置
  • 网站广告招商应该怎么做昆明大型网页开发企业
  • helmfile使用指南
  • 平谷做网站wordpress 百万ip
  • 网站开发兼职群网店装修网站
  • 网站开发设计资讯用php做图书管理网站
  • 博客建站系统设计网站p站
  • 有什么网站可以做简历深圳网站开发哪些
  • 如何做国外的电商网站设计企业网站建设费
  • RT-Thread 在SD卡实现ulog+时间戳保存不同日志方法
  • 移动网站与pc网站wordpress 页面文章列表
  • 山西响应式网站建设设计软件技术是干什么的
  • 网站被k怎么恢复南京那些公司做网站
  • 网站建设2种账号体系专业h5网站建设教程
  • 什么网站发布找做效果图的装饰公司排名
  • 广州网页设计网站网站建设毕业设计开题报告
  • 天津七七一网站建设有限公司怎么样昆明网站建设公司排行
  • 零基础入门C语言之深入结构体
  • 成都销售型网站北京vi设计公司价格
  • 个人网站建设方案书怎么写呼伦贝尔哪里做网站
  • 网站建设公司 销量怎么在各大网站做推广
  • CDN安全加速:高速访问与智能防护的完美结合
  • 买域名的网站有哪些有哪些比较好的外贸网站
  • seo网站的优化方案wordpress子页面内容
  • 公众号怎么做微网站网站时间轴