首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python3(4)Python 高级特性

本系列主要学习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

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180119A0Q2D900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券