文章目录

切片
切片就相当于其他语言中的截断函数,取部分指定元素用的。
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%免费】
本文介绍了Python中的切片、迭代、列表生成式、生成器和迭代器的概念,以及如何在学习Python时规划路线,包括基础视频学习、实战案例、工具包、面试准备和兼职机会等内容。

1762

被折叠的 条评论
为什么被折叠?



