分类目录归档:Python

python的enumerate函数

2010 年 11 月 9 日

这个是python的一个内建函数,看书的时候发现了他,mark一下 当我们既需要遍历索引同时需要遍历元素的时候,可以考虑使用enumerate函数,enumerate函数接受一个可遍历的对象,如列表、字符串 比如我们有一个["one","two","there"]的列表,我们需要在列表的每个元素前面加上他的编号 1 2 3 4 5 6 7 8 i = 0 seq = ["one","two","three"] for element in seq: seq[i] = ‘%d: %s’ % (i, seq[i]) i += 1 print seq   [’0: one’, ’1: two’, ’2: three’]

发表在 Python 标签为 , ,
  |  阅读(289次)

关于Python中的yield

2010 年 10 月 23 日

在介绍yield前有必要先说明下Python中的迭代器(iterator)和生成器(constructor)。 一、迭代器(iterator) 在Python中,for循环可以用于Python中的任何类型,包括列表、元祖等等,实际上,for循环可用于任何“可迭代对象”,这其实就是迭代器 迭代器是一个实现了迭代器协议的对象,Python中的迭代器协议就是有next方法的对象会前进到下一结果,而在一系列结果的末尾是,则会引发StopIteration。任何这类的对象在Python中都可以用for循环或其他遍历工具迭代,迭代工具内部会在每次迭代时调用next方法,并且捕捉StopIteration异常来确定何时离开。 使用迭代器一个显而易见的好处就是:每次只从对象中读取一条数据,不会造成内存的过大开销。 比如要逐行读取一个文件的内容,利用readlines()方法,我们可以这么写: 1 2 for line in open("test.txt").readlines(): print line 这样虽然可以工作,但不是最好的方法。因为他实际上是把文件一次加载到内存中,然后逐行打印。当文件很大时,这个方法的内存开销就很大了。 利用file的迭代器,我们可以这样写: 1 2 for line in open("test.txt"): #use file iterators print line 这是最简单也是运行速度最快的写法,他并没显式的读取文件,而是利用迭代器每次读取下一行。

发表在 Python 标签为 , , ,
  |  阅读(891次)

用Python写了个贪吃蛇

2010 年 10 月 14 日

第一次用Python写这种比较实用且好玩的东西,权当练手吧 游戏说明: * P键控制“暂停/开始” 源代码如下:

发表在 Python 标签为 ,
  |  阅读(649次)
Page 2 of 212