Python中的五种特性:切片,迭代,列表生成式,生成器,迭代器。

汇编语言与接口技术(第4版)清华大学出版社 第2章 80*86微处理器 课后题答案 阅读详情


在这里插入图片描述

切片

切片就相当于其他语言中的截断函数,取部分指定元素用的。

L = list(range(100))

#利用切片取部分元素
print(L\[0:10\]) #取从索引从0到9的前10个元素
print(L\[-10:\]) #取最后10个元素
print(L\[10:20\])#取从索引10到19的10个元素
print(L\[:10:2\])#从前10个元素中每两个取一个元素
print(L\[::10\]) #所有元素中每10个取一个元素 

运行结果:

取从索引从0到9的前10个元素: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
取最后10个元素: [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]
取从索引10到19的10个元素: [10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
从前10个元素中每两个取一个元素: [0, 2, 4, 6, 8]
所有元素中每10个取一个元素: [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]

迭代(Iteration)

迭代,即遍历。使用for循环的时候,只要是作用于一个可迭代对象,for循环就能正常运行。

判断一个对象是够是可迭代对象:

from collections import Iterable

print('字符串 is Iterable ?',isinstance('abc',Iterable))
print('list is Iterable ?',isinstance(\[1,2,3\],Iterable))
print('整数 is Iterable ?',isinstance(123,Iterable))

运行结果:

字符串 is Iterable ? True
list is Iterable ? True
整数 is Iterable ? False

遍历可迭代对象的几种方法:

#遍历字符串:
for ch in 'abc':
  print(ch)

#遍历list
L = \['A','B','C'\]
for tmp in L:
  print(tmp)

for i,value in enumerate(L):
  print(i,':',value)

#遍历dict
d = {'1':'111','2':'222','3':'333'}
for key,v in d.items():
  print('key:',key,'value:',v)

列表生成式

常见的list生成方式:

list(range(1, 11))

然而通过python内置的列表生成式,你可以换不同的姿势生成list,你可以这样:

\[x \* x for x in range(1,11)\]

#\[1, 4, 9, 16, 25, 36, 49, 64, 81, 100\]

这样:

\[x \* x for x in range(1, 11) if x % 2 == 0\]

\[4, 16, 36, 64, 100\]

还可以这样:

\[m + n for m in 'ABC' for n in 'XYZ'\]

\['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ'\]

是不是很涨姿势? 哈哈~

生成器(generator)

通过上面的列表生成式,我们可以直接创建一个列表。但是受内存限制,列表容量肯定是有限的。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环过程中不断推算出后续的元素呢?这样讲就不必创建完整的list,从而节省大量空间。在Python中,这种一边循环一边计算的机制,成为生成器:generator.

创建一个生成器最简单的方法: 把list的[]改成()

L = \[x \* x for x in range(1,10)\]
print(L)

g = (x \* x for x in range(1,10))
print(g)

//运行结果:
\[1, 4, 9, 16, 25, 36, 49, 64, 81\]
<generator object <genexpr> at 0x10cc14938>

而且,generator也是可迭代对象,可以通过for来遍历。

定义generator的另一种方法:

def fib(max):
  n,a,b = 0,0,1
  while n < max:
    yield b
    a,b = b, a+b
    n = n + 1
  return 'done' 

print(fib(6))

如果一个函数定义中包含yield关键字,那么这个函数就不再是一个普通函数,而是一个generator。最难理解的就是generator和函数的执行流程不一样。函数是顺序执行,遇到return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。

迭代器(Iterator)

生成器不但可以作用于for循环,还可以被next()函数不断调用并返回下一个值,直到最后抛出StopIteration错误表示无法继续返回下一个值了。可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。

可以使用isinstance()判断一个对象是否是Iterator对象:

from collections import Iterator
print('list is Iterator ?',isinstance(\[\], Iterator))
print('dict is Iterator ?',isinstance({}, Iterator))
print('string is Iterator ?',isinstance('123', Iterator))

//运行结果:
list is Iterator ? False
dict is Iterator ? False
string is Iterator ? False

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、Python所有方向的学习路线

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、Python基础学习视频

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~在这里插入图片描述
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述
因篇幅有限,仅展示部分资料

三、精品Python学习书籍

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。
在这里插入图片描述

四、Python工具包+项目源码合集
①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

六、Python兼职渠道

而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要可以保存图片微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

C#与Vector XL驱动库实战:CAN通道配置与端口访问详解 本文详细解析了使用C#调用Vector XL驱动库进行CAN总线通信开发的核心步骤。重点阐述了如何通过XL_GetDriverConfig获取硬件通道信息,并厘清channelMask与accessMask的区别与转换关系,最终指导开发者正确使用XL_OpenPort函数配置并打开CAN端口,为构建稳定的汽车电子测试与诊断应用奠定基础。 阅读详情

相关推荐

Python中的生成器(Generator)详解

Python中,我们可以使用yield语句来定义一个生成器生成器可以被视为一个特殊的函数,它的执行过程可以在多个时间点上被中断和恢复。当生成器被调用时,它会返回一个生成器对象,该对象可以用于迭代获取生成器产生的值。yield 1yield 2yield 3在上面的代码中,函数是一个生成器函数。它使用了三个yield语句来定义生成器的行为。每次调用生成器时,它会从当前暂停的位置开始执行,执行到下一个yield语句处并返回一个值。当生成器的所有语句都执行完毕时,它会引发异常来表示迭代结束。

BugHunterX的博客 1811

python迭代器生成器

帮助大家深入了解迭代器生成器

qq_52758588的博客 1万+

含中间直流的三相电力电子变压器PET模型MATLAB

电力电子变压器不 仅具有传统变压器电压变换和能量传递的功能,还具有可以对变压器原、副边电压幅 值与相位进行有效控制的功能,而且可以和各种交、直流分布式电源互联,符合未来 电网建设需求。模型简介:https://electric-boy.blog.csdn.net/article/details/135466214

Python迭代器生成器

方法_iter_返回一个迭代器,它是包含方法_next_的对象,而调用这个方法可以不提供任何参数。推荐在迭代器中也实现方法__iter__(并像刚才那样使它返回self),这样迭代器就可以直接用于for循环。在可以使用序列的情况下,大多数也可使用迭代器或可迭代对象,可以使用构造函数list显示地将迭代器转化为列表迭代器实现了方法__iter__,这个方法返回迭代器本身,大多数情况下,都在。对象中实现返回迭代器的方法__iter__,并在for循环中使用这个对象。实现了方法__iter__的对象是。....

m0_73076093的博客 6982

python迭代器(Iterator)与生成器(Generator)

_iter__()方法返回一个迭代器对象,一般是self,这个返回的对象必须实现了__next__()方法,因为for循环使用这个迭代器时,会首先调用一次__iter__(),然后每次循环时调用这个__iter__()返回的对象的__next__()方法,将__next__()返回值赋给循环变量。另外,关于一个迭代器对象可以迭代几次的问题。4. 生成器生成器是一种特殊的迭代器,可以通过生成器表达式或生成器函数实现,每次循环会保存生成器当前的状态,下次循环时当前生成器中的状态推导下一个元素。

Terry_R_Hh的博客 2520

Python学习之-迭代器生成器

Python中,迭代器(Iterator)和生成器(Generator)是实现迭代协议的对象,用于遍历集合中的元素。它们之间有联系,但也有一些关键的差异。迭代器生成器都允许你对一系列数据进行迭代,但生成器提供了一种更简便,内存高效的方式来实现迭代器的功能。当你需要一个简单的迭代器并且不想实现类时,生成器是一个非常好的选择。适用场合包括处理大数据流、文件处理、网络通信等等。

Summer的博客 3392

python十大高级特性_python高级特性简介

Python中的五种特性切片迭代列表生成式生成器迭代器切片切片就相当于其他语言中的截断函数,取部分指定元素用的。?运行结果:取从索引从0到9的前10个元素: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]取最后10个元素: [90, 91, 92, 93, 94, 95, 96, 97, 98, 99]取从索引10到19的10个元素: [10, 11, 12, 13, 1...

weixin_39806818的博客 137

python简述列表特征_python高级特性简介

Python中的五种特性切片迭代列表生成式生成器迭代器切片切片就相当于其他语言中的截断函数,取部分指定元素用的。L = list(range(100))#利用切片取部分元素print(L[0:10]) #取从索引从0到9的前10个元素print(L[-10:]) #取最后10个元素print(L[10:20])#取从索引10到19的10个元素print(L[:10:2])#从前10个元...

weixin_39777242的博客 274

Python之高级特性

Python中的五种特性切片迭代列表生成式生成器迭代器。 #切片 切片就相当于其他语言中的截断函数,取部分指定元素用的。 L = list(range(100)) #利用切片取部分元素 print(L[0:10]) #取从索引从0到9的前10个元素 print(L[-10:]) #取最后10个元素 print(L[10:20])#取从索引10到19的10个元素 print(L[:1...

weixin_34356138的博客 74

Python学习(五)高级特性切片迭代列表生成式生成器迭代器)、模块介绍

Python学习(五)高级特性切片迭代列表生成式生成器迭代器)、模块介绍

ACGkaka的博客 1770

Python学习】9.切片迭代列表生成式生成器迭代器与杨辉三角

本节摘要:切片迭代列表生成器生成器 generator;迭代器 iterator

LareinaL的博客 1512

Python高级特性切片迭代列表生成式生成器迭代器

点击上方“小白学视觉”,选择加"星标"或“置顶”重磅干货,第一时间送达接着廖雪峰老师的学习教程,小编要开始加快推进Python学习进程了。今天的笔记内容是Python高级特性,其...

小白学视觉 292

廖雪峰Python课程笔记-06-Python高阶特性切片迭代列表生成式生成器迭代器

文章目录Python高级特性切片迭代判断是否可迭代如何实现下标循环列表生成式⭐️生成器什么是生成器?为什么要引入生成器?如何使用生成器?generator和函数的区别迭代器Iterable与Iterator Python高级特性 python中提供了切片迭代列表生成式生成器迭代器等诸多高级特性,多多使用高级特性,可以使得我们的代码更加简单,Python的特点就是代码简单。1行代码能实现的功能,决不写5行代码。 切片 对于取指定索引范围的操作,Python提供了切片(Slice)操作符(用循环十分繁琐

Suprit's blog 464

Python基础】Python高级特性切片迭代列表生成式生成器迭代器

接着廖雪峰老师的学习教程,小编要开始加快推进Python学习进程了。今天的笔记内容是Python高级特性,其中包括快速访问对象类型元素的切片、循环中的迭代意义、方便的列表生成式...

fengdu78的博客 286

python中非常有用的高级特性切片迭代列表生成式生成器迭代器

python中,代码不是越多越好,而是越少越好,代码越少,开发效率越高 切片: 取一个list和tuple的部分元素是非常常见的 >>>L=['a','b','c','d'] >>>L[0:3] ['a','b','c'] L[0:3]表示,从索引0开始取,直到索引3为止,但不包括索引3,即0,1,2,正好3个元素。 如果第一个索引是0,还可以省略: >>>L[:3] ['a','b','c'] 也可以从索引2取1个元素出来 &g

m0_69619434的博客 941

python 生成器迭代器

生成器迭代器,斐波那契数列

m0_51736952的博客 2697

Python中的迭代器生成器

推导式的引入提供了更加高效的方法来生成序列,并且没有失去代码的可读性。

m0_69298614的博客 1098

Python中的迭代器生成器介绍

一、迭代器(Iterators)迭代器Python中用于遍历数据集合的一种机制。它是一个实现了迭代协议的对象,可以通过iter()函数来获得迭代器迭代器需要实现两个方法:__iter__()和__next__()。其中,__iter__()返回迭代器自身,而__next__()返回序列中的下一个元素。当没有元素可以返回时,__next__()应该引发StopIteration异常,表示迭代结束...

专注测试领域知识分享和技能提升 3956

Python迭代器生成器

python中的生成器迭代器

用吸管喝水的女汉子 261

Python基础篇(十):迭代器生成器

迭代器生成器Python中用于处理可迭代对象的重要概念。它们提供了一种有效的方式来遍历和访问集合中的元素,同时具有节省内存和惰性计算的特点。

后端开发 1101
上一篇: Python实现http客户端代码示例
下一篇: 成为Python做题家!新手做题网站推荐~
一秋的编程笔记
博客等级 码龄3年 1574粉丝 319原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值