原文作者:David Beazley 中文编译:Tony (digitalsatori) 第一部分:Iterators 和 Generators简介 Iteration 枚举 众所周知Python有一个“for”语句 你可以用它来在一组对象上做循环操作 >>> for x in [1, 4, 5, 10]: ... print x, ... 1 4 5 10 >>> 你不仅仅可以对list做循环枚举操作,还可以对很多不同类型的对象做相同的操作 对Dict的枚举 对字典进行循环枚举操作,会得到该字典的keys >>> prices = { 'GOOG' : 490.10, ... 'AAPL' : 145.23, ... 'YHOO' : 21.71 } ... >>> for key in prices: ... print [...]
Displaying posts tagged with
“generator”
Python食谱-1.13.访问字符串的子串
By digitalsatori on 八月 13th, 2009
原文作者:Alex Martelli 中文编译:Tony (digitalsatori) 问题 如何访问一个字符串的其中一部分。比如,读入一个固定长度的记录,如何才能提取出记录中各字段的值? 解决方法 字符串'切片'的方法不错,但是每次只能提取一个字段: afield = theline[3:8] 如果还要考虑每个字段的长度,那 struct.unpack 再合适不过了。比如: import struct # 获取5个字节长度的字符串,跳过3个字节,获取2个长度为8个字节的字符串,获取剩余的全部字符 baseformat = "5s 3x 8s 8s" # 从baseformat中可以知道字符串theline的最短的长度(本例中为24,我们可以使用 # struct.calcsize 计算来获得) numremain = len(theline) - struct.calcsize(baseformat) # 创建带's'的格式化子串,然后使用unpack format = "%s %ds" % (baseformat, numremain) l, s1, s2, t = struct.unpack(format, theline) 如果你想要跳过(而不是如上获取)剩余的字符,你可以: l, s1, s2 = [...]













