可爱的 Python:获得版本 2.0
2007-03-29 12:08:12 来源:WEB开发网核心提示: 大多数读者会注意到在前一段中有个奇怪的措辞:“其它函数语言,”作为 Python 程序员,可爱的 Python:获得版本 2.0(2),自从 Python 1.0 以来,您已在使用(混合的)函数语言进行编程,列表内涵能力中没有什么新内容;在 Python 1.5x
大多数读者会注意到在前一段中有个奇怪的措辞:“其它函数语言。”作为 Python 程序员,自从 Python 1.0 以来,您已在使用(混合的)函数语言进行编程。当然,如果您还不习惯使用内置函数 lambda()、map()、reduce() 和 filter(),您也还没使用过这些函数特性。但即使您使用过这些,Python 总是使它易于避免考虑函数范例。
无论在什么情况下,列表内涵都是执行许多 Python 内置函数所执行的操作的一种方法,但使用的方式更为紧密,同时更方便了读取和理解。让我们从一个使用中的简单列表内涵的示例开始:
列表内涵示例
>>> xs = (1,2,3,4,5)
>>> ys = (9,8,7,6,5)
>>> bigmuls = [(x,y)
for
x
in
xs
for
y
in
ys
if
x*y > 25]
>>>
print
bigmuls
[(3,9), (4,9), (4,8), (4,7), (5,9), (5,8), (5,7), (5,6)]
在该例中,我们创建了一个元组的列表,其中每个元组元素都是从其它列表中抽取出的,而每个列表元素又都满足某些特性。如果不使用 if 子句,我们只能创建一个排列(通常在它们本身中有用);而如果使用 if 子句,我们可以创建一个对列表进行删节的 filter() 类型。顺便说一下,一个列表内涵中允许存在多个 if 子句。
从根本上说,列表内涵能力中没有什么新内容;在 Python 1.5x 中当然也可以达到相同的效果,但没那么清楚。例如,下面一些更冗长(因此不很清晰)的技术可以做同样的事:
更多精彩
赞助商链接