本系列主要学习Python的基本使用和语法知识,后续可能会围绕着AI学习展开。
Python3 (1) Python语言的简介
Python3 (2) Python语法基础
Python3 (3) Python函数
Python3 (4) Python高级特性
python 高级特性,主要是数据的迭代部分的知识,包括 切片、迭代、列表生成式、生成器、迭代器,整体来看比java等语言更加强大,方便。
切片
切片可以截取list的部分数据。查找数据更加方便,相当于java字符串方法。
输出结果:
以上就是切片的使用规则,由于tuple,str 可以看成list,也支持切片操作。
迭代
迭代指对数据的遍历,一般通过for循环来进行遍历,如list 、tuple。python中for循环不需要有下标,只要是可迭代对象,无论有无下标,都可以迭代。如dict:
输出结果:
以上是对dict 的遍历,list、tuple 比 dict 更简单, 其中,如果要得到list下标,可以通过关键字 获取对应的下标,并且for 遍历支持多种返回值。
列表生成式
python中可以通过表达式来生成list ,可以方便的生成符合条件的list。
输出结果:
这就是list 生成式的强大之处,可以通过各种表达式,生成需要的list。
生成器
生成器就是按动态的需求生成list,与列表生成式相比,不需要一次性生成完整的数据,可以节约内存。即:列表元素按照某种算法推算出来,边循环一边计算的机制的机制称为 ,用代替列表生成器的。
输出结果:
直接打印g,输出的是,说明我们定义的是一个, 通过连续可以打印出对应的数据,但是超出范围会报错误,由于也是可迭代对象
输出结果:
如果上面的for 循环不能瞒住需求,我们可以通过函数来实现, 我们来写一个斐波拉契数列数列,这个数列就是根据前面数据来推断后面的数,在函数中使用关键字 可以转化成 generator
输出结果:
这里我们要清楚的使用规则:函数中return语句或者最后一行函数语句就返回。而变成generator的函数,在每次调用next()的时候执行,遇到yield语句返回,再次执行时从上次返回的yield语句处继续执行。写一个杨辉三角练练:
输出结果:
迭代器
理解迭代器要清楚一个概念,可以进行for 循环的为可迭代对象,并不是迭代器,迭代器是指以被next()函数调用并不断返回下一个值的对象,表示一个惰性计算的序列。是迭代器一定是可迭代对象,可迭代对象不一定是迭代器。
Python的for循环本质上就是通过不断调用next()函数实现的
可迭代对象:
迭代器: 可以通过函数获得一个对象
输出结果:
上面的代码验证了list、dict、tuple、generator是否是迭代器和可迭代对象,通过isinstance判断,可迭代对象可以通过iter()函数生成迭代器。
参考
https://www.liaoxuefeng.com
领取专属 10元无门槛券
私享最新 技术干货