专业的建设网站服务公司苏州园区人才市场

web/2025/9/27 6:10:01/文章来源:
专业的建设网站服务公司,苏州园区人才市场,免费公司网站申请,网站用户互动8.1 可迭代对象(Iterable)大部分对象都是可迭代#xff0c;只要实现了__iter__方法的对象就是可迭代的。__iter__方法会返回迭代器(iterator)本身#xff0c;例如#xff1a; lst [1,2,3] lst.__iter__()Python提供一些语句和关键字用于访问可迭代…8.1 可迭代对象(Iterable)大部分对象都是可迭代只要实现了__iter__方法的对象就是可迭代的。__iter__方法会返回迭代器(iterator)本身例如 lst [1,2,3] lst.__iter__()Python提供一些语句和关键字用于访问可迭代对象的元素比如for循环、列表解析、逻辑操作符等。判断一个对象是否是可迭代对象 from collections import Iterable  # 只导入Iterable方法 isinstance(abc, Iterable)True isinstance(1, Iterable)False isinstance([], Iterable)True这里的isinstance()函数用于判断对象类型后面会讲到。可迭代对象一般都用for循环遍历元素也就是能用for循环的对象都可称为可迭代对象。例如遍历列表 lst  [1, 2, 3] for i in lst:...   print i...123博客地址http://lizhenliang.blog.51cto.com and https://yq.aliyun.com/u/lizhenliangQQ群323779636(Shell/Python运维开发群)8.2 迭代器(Iterator)具有next方法的对象都是迭代器。在调用next方法时迭代器会返回它的下一个值。如果next方法被调用但迭代器没有值可以返回就会引发一个StopIteration异常。使用迭代器的好处1)如果使用列表计算值时会一次获取所有值那么就会占用更多的内存。而迭代器则是一个接一个计算。2)使代码更通用、更简单。8.2.1 迭代器规则回忆下在Python数据类型章节讲解到字典迭代器方法来举例说明下迭代器规则 d {a:1, b:2, c:3} d.iteritems()# 判断是否是迭代器 from collections import Iterator isinstance(d, Iterator)False isinstance(d.iteritems(), Iterator)True# 使用next方法。 iter_items d.iteritems() iter_items.next()(a, 1) iter_items.next()(c, 3) iter_items.next()(b, 2)由于字典是无序的所以显示的是无序的实际是按照顺序获取的下一个元素。8.2.2 iter()函数使用iter()函数转换成迭代器语法iter(collection) - iteratoriter(callable, sentinel) - iterator lst  [1, 2, 3] isinstance(lst, Iterator)False lst.next()  # 不是迭代器是不具备next()属性的Traceback (most recent call last):File , line 1, in AttributeError: list object has no attribute next iter_lst iter(lst) isinstance(iter_lst, Iterator)True iter_lst.next()1 iter_lst.next()2 iter_lst.next()38.2.3 itertools模块itertools模块是Python内建模块提供可操作迭代对象的函数。可以生成迭代器也可以生成无限的序列迭代器。有下面几种生成无限序列的方法count([n]) -- n, n1, n2, ...cycle(p) -- p0, p1, ... plast, p0, p1, ...repeat(elem [,n]) -- elem, elem, elem, ... endlessly or up to n times也有几个操作迭代器的方法islice(seq, [start,] stop [, step]) -- elements fromchain(p, q, ...) -- p0, p1, ... plast, q0, q1, ...groupby(iterable[, keyfunc]) -- sub-iterators grouped by value of keyfunc(v)imap(fun, p, q, ...) -- fun(p0, q0), fun(p1, q1), ...ifilter(pred, seq) -- elements of seq where pred(elem) is True1)count生成序列迭代器 from itertools import *  # 导入所有方法# 用法 count(start0, step1) -- count object counter count() counter.next()0 counter.next()1 counter.next()2......可以使用start参数设置开始值step设置步长。2)cycle用可迭代对象生成迭代器# 用法 cycle(iterable) -- cycle object i cycle([a, b, c]) i.next()a i.next()b i.next()c3)repeat用对象生成迭代器# 用法 repeat(object [,times]) - create an iterator which returns the object就是任意对象 i repeat(1) i.next()1 i.next()1 i.next()1......可使用无限次。也可以指定次数 i repeat(1, 2) i.next()1 i.next()1 i.next()Traceback (most recent call last):File , line 1, in StopIteration4)islice用可迭代对象并设置结束位置# 用法 islice(iterable, [start,] stop [, step]) -- islice object i islice([1,2,3],2) i.next()1 i.next()2 i.next()Traceback (most recent call last):File , line 1, in StopIteration正常的话也可以获取的3。5)chain用多个可迭代对象生成迭代器# 用法 chain(*iterables) -- chain object i chain(a,b,c) i.next()a i.next()b i.next()c6)groupby将可迭代对象中重复的元素挑出来放到一个迭代器中# 用法 groupby(iterable[, keyfunc]) - create an iterator which returns for key,group in groupby(abcddCca):...   print key,list(group)...a [a]b [b]c [c]d [d, d]C [C]c [c]a [a]groupby方法是区分大小写的如果想把大小写的都放到一个迭代器中可以定义函数处理下 for key,group in groupby(abcddCca, lambda c: c.upper()):...   print key, list(group)...A [a]B [b]C [c]D [d, d]C [C, c]A [a]7)imap用函数处理多个可迭代对象# 用法 imap(func, *iterables) -- imap object a imap(lambda x, y: x * y,[1,2,3],[4,5,6]) a.next()4 a.next()10 a.next()188)ifilter过滤序列# 用法 ifilter(function or None, sequence) -- ifilter object i ifilter(lambda x: x%20,[1,2,3,4,5]) for i in i:...   print i...24当使用for语句遍历迭代器时步骤大致这样的先调用迭代器对象的__iter__方法获取迭代器对象再调用对象的__next__()方法获取下一个元素。最后引发StopIteration异常结束循环。8.3 生成器(Generator)什么是生成器1)任何包含yield语句的函数都称为生成器。2)生成器都是一个迭代器但迭代器不一定是生成器。8.3.1 生成器函数在函数定义中使用yield语句就创建了一个生成器函数而不是普通的函数。当调用生成器函数时每次执行到yield语句生成器的状态将被冻结起来并将结果返回__next__调用者。冻结意思是局部的状态都会被保存起来包括局部变量绑定、指令指针。确保下一次调用时能从上一次的状态继续。以生成斐波那契数列举例说明yield使用斐波那契(Fibonacci)数列是一个简单的递归数列任意一个数都可以由前两个数相加得到。#!/usr/bin/python# -*- coding: utf-8 -*-def fab(max):n, a, b 0, 0, 1while n max:print ba, b b, a bn 1fab(5)# python test.py11235使用yied语句只需要把print b改成yield b即可#!/usr/bin/python# -*- coding: utf-8 -*-def fab(max):n, a, b 0, 0, 1while n max:yield b# print ba, b b, a bn 1print fab(5)# python test.py可见调用fab函数不会执行fab函数而是直接返回了一个生成器对象上面说过生成器就是一个迭代器。那么就可以通过next方法来返回它下一个值。 import test f test.fab(5) f.next()1 f.next()1 f.next()2 f.next()3 f.next()5每次fab函数的next方法就会执行fab函数执行到yield b时fab函数返回一个值下一次执行next方法时代码从yield b的吓一跳语句继续执行直到再遇到yield。8.3.2 生成器表达式在第四章 Python运算符和流程控制章节讲过简化for和if语句使用小括号()返回一个生成器中括号[]生成一个列表。回顾下# 生成器表达式 result (x for x in range(5)) result at 0x030A4FD0 type(result)# 列表解析表达式 result [ x for x in range(5)] type(result) result[0, 1, 2, 3, 4]第一个就是生成器表达式返回的是一个生成器就可以使用next方法来获取下一个元素 result.next()0 result.next()1 result.next()2......

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/82584.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

集团定制网站建设公司网站开发团队名字

Go语言入门心法(一): 基础语法 Go语言入门心法(二): 结构体 Go语言入门心法(三): 接口 Go语言入门心法(四): 异常体系 Go语言入门心法(五): 函数 一:go语言面向web编程认知 Go语言的最大优势在于并发与性能,其性能可以媲美C和C,并发在网络编程中更是至关重要 使用http发送请…

网站备案有什么风险优化是什么工作

[适用于 linux 和 mac] 比如 ~/.ssh/config: Host targetHostName 192.168.2.12User rootPort 9990这样每次 ssh target 的时候每次都需要输入密码,比较麻烦 解决办法如下,可让下次不用重新输入密码 # 先要生成 ssh 密钥 ssh-keygen# 配置永久性密码 s…

现在百度怎么优化排名seo的网站

happiness 题解: 将图转换成最小割. 将割完的图中与S相连的点看做选文科, 与T相连的点看做选理科. flow(s, u) 文科值 flow(u,t) 理科值 假设u 和 v 一起选文科有奖励值z, flow(s,u) z/2 flow(s,v) z/2, flow(u,v) z/2 假设u 和 v 一起选理科有奖励值z, flow(u,t) z/2…

佛山高端网站建设工作室wordpress化妆品主题

在Vue 3 中有多种定义组件的方法。从选项到组合再到类 API,情况大不相同 1、方式一:Options API 这是在 Vue 中声明组件的最常见方式。从版本 1 开始可用,您很可能已经熟悉它。一切都在对象内声明,数据在幕后由 Vue 响应。它不是…

一个人怎么做网站网络架构扁平化

题解:CF1914E-Game with Marbles 事先说明一下,本题解不讲解简单数据范围的算法,因为复杂数据范围的就很简单。 这道题的大体意思是这样的:小A有颜色为i(i1~n)的小球a[i]个,小B有颜色为i(i1~n)的小球b[i]个。现在他们…

网站建设中页面模板eclipse做网站代码

一、简介 PS 是 Linux 系统命令之一,在 Linux 中是查看进程的命令。查看正处于 Running 的进程。 linux 上进程有 5 种状态: 运行:正在运行或在运行队列中等待 中断:休眠中,受阻,在等待某个条件的形成或接收到信号 不…

如何查询个人名下企业企业网站建设营销优化方案

目录 创建数组 读取数组 读取单个元素 读取所有成员 默认位置 数组的长度 提取数组序号 提取数组成员

wordpress站点跟换域名郑州网站建设公司qq

平常我们看到的说明书是像这样纯文字解说的或者是规范的文字配图这些说明书一般都是注重文字的上表达而大家熟悉的家居品牌宜家将说明书创意玩出了新境界!↓↓↓这不,最近由于全球疫情严峻期间宜家的全新说明书手册搜罗了各种纸上游戏意为帮助大家打发无…

广州网站建设o2owordpress检索插件

我们看官网文档中这个地方我们先创建好数据库,以供练习使用数据库我们创建数据表我们创建分区表,选取的字段不能是表中存在的字段元数据信息Formatted信息那我们加载信息load data local inpath /data/hivetest/dept.txt into table dept_partition part…

苏州 营销型网站 高端网站阿里云服务器登录入口

[Toc]# 1、问题描述 python在绘图过程中,可能会出现colorbar高度与主图不匹配情况,需要进行调整,使得与主图高度对齐,使图像更美观。示例:colorbar位置高于主图 2、解决方法 通过调整shrink参数匹配对齐,pad调整x轴…

电子商务网站建设 实验分析网络营销与网站推广的区别

拦截器 配置信息(拦截所有请求) 其实这种可以作为springAOP作日志记录

小程序模板下载安装seo优化排名易下拉试验

mysql忘记密码,怎么办?我们经常需要修改mySQL的密码,比如时间久了忘记了MySQL的密码,也或者是使用了一台别人使用过的电脑,不知道之前密码的情况下,又想使用MySQL,怎么办呢?准备工作…

html购物网站设计论文课程分销的网站怎么做

▌单片机解密是什么?单片机解密又叫单片机破解,芯片解密,IC解密,但是这严格说来这几种称呼都不科学,但已经成 了习惯叫法,我们把CPLD解密,DSP解密都习惯称为单片机解密。单片机只是能装载程序芯…

如何制作淘宝客网站张家界酒店网站建设

6-1 猴子吃桃-递归 分数 10 全屏浏览题目 切换布局 作者 ZZULI 单位 郑州轻工业大学 小猴子第一天摘下桃子若干,当即吃掉一半,还不过瘾,又多吃一个,第二天又将剩下的桃子吃掉一半多一个,以后每天吃掉前一天剩下的一…

西丽网站建设做传销网站违法

最近一款“聊天机器人”迅速爆火,它叫ChatGPT,全称Chat Generative Pre-trained Transformer,对话数据预先训练生成的Transformer模型,"主要特色"是能够学习和理解人类的语言。 ChatGPT起源于聊天机器人(chat bot),它是一种使用聊天接口与用户交互的机器人,它可…

网站如何备案微信小程序开发商家

最近在处理一批数据,10的8次方,处理完毕大概要一个月,并且这个程序占用的CPU只有一个(我从来没有注意到这个问题啊啊啊)。 突然师兄提醒我可以把10的8次方条数据拆成10个10的7次方,作为10条任务并行处理&a…

汕头网页网站制作wordpress实现瀑布流

优化查询使用Explain语句分析查询语句Explain 用来分析 SELECT 查询语句,开发人员可以通过分析 Explain 结果来优化查询语句。通过对查询语句的分析,可以了解查询语句的执行情况,找出查询语句执行的瓶颈,从而优化查询语句.使用索引查询MySql中提高性能的一个最有效的…

在线购物网站模板宣传网

Redis是一种高性能的开源内存数据结构存储,用作数据库、缓存和消息代理。它支持多种数据结构,如字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)及有…

推广网站公司电子商务智能建站

目录 一:重排链表(LeetCode.143) 二:删除链表的节点(LCR 136. 删除链表的节点) 三:K个一组反转链表(LeetCode.25) 有关经典算法链表的第一篇内容,可以查看我…