python(二)
python高级特性
(一)切片
仅出现在list和tuple中,变量名[起始下标:结束下标:步长]:
1.默认第一个下标为0,默认最后一个是list最后一个元素;
2.支持下标为负数,-1表示倒数第一个元素;
3.结束下标,表示到该元素为止,不包括该元素;
4.步长表示间隔多少位取,可以为负数,表示逆序取。
(二)迭代
就是通过for ...in来循环遍历list、tuple,和字符串。
(三)列表生成式
与list()的作用相同,目的是生成一个list。
形式是:[ f(x) for x in range()/其他list/dict字典 ]
注:f(x)为生成表达式,x也可以为两个变量。for前必须为表达式。
可以在for前加if还必须加else,因为表达式必须计算出一个结果;而for后加if不能加else。for前加表示对表达式计算值的筛选,for后加表示对for输出值的筛选。
(四)生成器
不一次性生成list,而是边循环遍历边计算出下一个值。
区别:把[]换成(),其他与生成式一样。
定义形式:
1.g = (列表生成式),通过next(g)获取下一个值,或者使用for a in g来获取。
2.编写一个函数func(),函数中使用yield,g = func(),例子如https://www.liaoxuefeng.com/wiki/1016959663602400/1017318207388128。
(五)迭代器
for循环遍历的对象是:1.集合数据类型;2.生成器