A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 白马2018 初级黑马   /  2018-6-3 23:01  /  933 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

切片

切片是通过索引完成的
包含开始索引不包含结束索引
最后一个索引位置为-1
切片还可以提供步长



不使用strip方法去除字符串首尾空格
使用切片和递归


问题:
此处为什么只能有切片不能有索引

因为索引遇到空字符串时会报错,而切片不会



迭代

for 循环就的迭代,
要同时迭代dict的key和value


collerctions模块的Iterable类型可以判断对象是否可以迭代



内置enumerate函数可以把list变成索引-元素对




列表生成式

列表生成式就是把for循环if判断输出放在一行里
也可以包含两个for循环



os模块的listdir列出当前文件下的所有文件名


把dict转换为list


生成器 (generator)

只要把生成式的【】改为(),就建成了一个生成器
生成器保存的是算法,调用一次就计算一次



计算斐波拉契数列的生成器


普通函数只要把print改为yield就变成生成器函数了

实现杨辉三角的生成器函数



迭代器

可用for循环的数据类型都是可迭代对象(Iterable),如list、tuple、dict、set、str



生成器也是可迭代对象,但它是迭代器(Iterator
凡是可以用next()函数返回下一个值的对象就是迭代器



list、dict、str也可以通过iter()函数转变为迭代器(Iterator)



个人思考:
迭代器不是一次性返回所有数据,它是一个数据流,根据需要返回下一个数据


小结
可作用于for循环的对象就是Iterable类型

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马