python官方文档读书笔记[0] enumerate map with…open

根据之前定的计划,开始水一些小笔记,主要是为了给自己看,不是做教程,所以只选取一些以前不太了解的小知识。

代码高亮插件待配置

目前python官方文档扫了一遍Tutorial,然后开始看Standard Library built-in functions篇,有些以前不太熟但是感觉很有用的用法。

  • enumerate()函数 同时遍历元素和索引值

当我们遍历一个序列时,如果需要用到每一个元素的值时,习惯上会这么写:
[code lang=”python”]
>>> lst = [10,20,30,40]
>>> for elem in lst:

[/code]

当需要同时用到每一个iterator以及它的索引值时,就可以使用到enumerate()函数,将序列作为其参数,可以在每个iterator中产生(索引号,元素值)的元组,用法如下:
[code lang=”python”]
>>> lst = [10,20,30,40]
>>> for i, elem in enumerate(lst):

[/code]

  • map()函数用法 将一个或多个序列中的元素批量进行修改转化成新的序列B

map(func,seq1[,seq2…])

第一个参数func为一个函数对象,这个函数将运用在后续的seq1,seq2…中,map函数将会遍历计算return_value[i] = func(seq1[i],seq2[i],…) 形成一个新的序列。

通常会与lambda表达式一起使用,会使得程序代码量变得十分简洁。

举个例子吧:一个序列中全是整数,我想将这个序列的值全都乘以2
[code lang=”python”]
>>> l = [5, 10, 15, 30]
>>> map(lambda x:x*2, l)
[10, 20, 30, 60]
[/code]

  • with…open,一个资源释放方便的文件读写方式

一般在文件读写时python要使用open函数,然后进行读或写,还要记得使用close函数释放文件句柄,当大量文件句柄忘记释放,则会造成程序异常,资源耗尽的现象。

with…open实际上将一个文件的读写集中在一个try block中,并且当with…open语句结束后,文件句柄自然被释放,是一个较为安全、简洁的写法。

例子:
[code lang=”python”]
>>> with open(‘workfile’, ‘r’) as f:
… read_data = f.read()
>>> f.closed
True
[/code]

Leave a Reply

Your email address will not be published. Required fields are marked *