默认教学计划
929人加入学习
(28人评价)
Python 基础
价格 ¥ 299.00
该课程属于 高校公益行 | 网络安全实践训练营 请加入后再学习

Python的语句与语法-迭代器和解析

• 迭代器:初探
    • 文件迭代器
    • 手动迭代
    • 其它内置类型迭代器
• 列表解析:初探
• 其它迭代环境
• Python3.x中新的迭代环境
    • range
    • map、zip、filter
    • 多个迭代器vs单个迭代器
    • 字典试图迭代器

文件迭代器
回忆一下之前章节,文件访问方式有如下:
<file>.read(): 一次性读取全部内容。
<file>.readline(): 一次读取一行。
<file>.readlines(): 生成列表,每一行是每个元素。
<file>.__next__(): 跟readline()差不多,但读取完之后报错。
__next__()报错,为StopIteration。在Python中任何这类对象都认为是可迭代的。
在Python里迭代工具(比如for)会调用__next__()来获取数据,并以StopIteration来确认何时离开。

注: 尽量不要使用readlines()函数,因为这个会一次性的把所有内容读取到内存里
(转换为列表),运行速度会比较慢。
最好使用readline或者迭代文件方法。

 

[展开全文]

文件迭代器:

for line in open(<filename>):

    print(line,end-'')

 

手动迭代(iter与next):

f=open(<filename>)

f.__next__()  #调用一次该方法,就读取一行

-----------------------------------

>>>L=[1,2,3]

>>>i=iter(L)    #使得L变成可迭代对象,文件对象不需要这步,文件本身就是可迭代对象。

>>>next(i)

1

>>>next(i)

2

>>>next(i)

3

>>>next(i)

报错

 

列表解析(百度)

filter reduce方法。。。

 

 

[展开全文]

迭代器和解析:

文件迭代器:文件本身的对象

手动迭代:迭代协议里,当使用for函数进行迭代时,会传递给iter内置函数,以便可迭代对象中获取迭代器。返回的对象有需要有next()方法。

其他内置类型迭代器:遍历字典键的经典方法是明确地获取其键的列表。

列表解析:初探

可以使用产生所需结果列表的一个单个表达式来替代

在文件上使用列表解析:可以使用列表解析来进行去除换行符的操作

其他迭代环境:map也可用在迭代    map函数是把后面的可迭代的每个值当作前面的参数传入,map可以直接返回列表,不需要用list函数进行转换

sorted会对迭代对象进行排序后生成列表

enumerate也会对迭代对象进行运算后,生成可迭代对象,就是在原有的顺序中添加序列号

sum、any、all、max、min也可使用迭代器

list,tuple,join都是可以对迭代对象进行操作后输出

字典试图迭代器,与其它多个迭代器相似

 

[展开全文]