python学习笔记(3)

1.for语句也支持一个可选的else块,类似while,如果循环里开始没有碰到break,就会执行。

2.内置range函数返回一系列连续增加的整数,可作为for中的索引。

3.内置zip函数返回并行元素的元组的列表,可用于在for中内遍历整个序列。zip会取得一个或多个序列为参数,然后返回元组的列表,将这些序列中的并排的元素配成对。zip可以接受任何可迭代的对象(包括文件)。

4.当键和值的集合必须在运行时计算时,可用zip产生字典。

5.enumerate函数返回一个生成器对象,next(E)或者循环中每次迭代的时候会返回一个(index,value)的元组。

6.Python中所有会从左至右扫描对象的迭代工具,都可用于任何可迭代的对象。这些迭代工具包括for循环、列表解析、in成员关系测试以及zip内置函数等。

7.文件的_next_()方法在每次调用时会返回文件中的下一行,到达文件末尾时会引发内置的StopIteration异常。

8.有_next_方法的对象会前进到下一个结果,在一系列结果的末尾时,则会引发StopIteration异常。在Python中,任何这类对象都认为是可迭代的,都能以for循环或其他迭代工具遍历。因为所有迭代工具内部工作起来都是在每次迭代中调用__next__,并且捕捉StopIteration异常来确定何时离开。

9逐行读取文本的最佳方式就是根本不要去读取,其替代方法就是,让for循环在每轮自动调用next从而进到下一行。for line in open():

10.为了支持手动迭代,python 3.0 还提供了一个内置函数next。调用next(X)等同于X.__next__()。

11.列表以及很多其他的内置对象,不是自身的迭代器,需要调用iter来启动迭代。文件不必,因为文件对象就是自己的迭代器(有自己的_next_方法)。

12.扩展的列表解析:[  变量 for …in…if……],if子句可以过滤测试不为真的结果项。

13.实现了迭代协议的任何工具,都能够在提供了该工具的任何内置类型或用户定义的类上自动地工作。

14.内置函数map,把每一个函数调用应用于传入的可迭代对象中的每一项。在python3.0中,它返回一个可迭代的对象自身。

15.处理迭代的内置函数还有sorted,filter(选择一个函数为真的项),reduce(针对可迭代对象中的成对的项运行一个函数),sum,any,all,max,min。

16.python3.0新增了集合解析和字典解析,类似列表解析。

17.函数调用中的*arg形式,会把一个集合的值解包为单个的参数。

18.range对象支持len和索引,它不是自己的迭代器(手动迭代时使用iter产生一个迭代器),并且,它支持在其结果上的多个迭代器,这些迭代器会记住它们各自的位置。相反,zip,map和filter不支持相同结果上的多个活跃迭代器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值