WEB开发网
开发学院软件开发Python 可爱的 Python:获得版本 2.0 阅读

可爱的 Python:获得版本 2.0

 2007-03-29 12:08:12 来源:WEB开发网   
核心提示: 版本 1.5x 中各种技术的比较>>># Functional-style spaghetti for list comprehension>>> filter(lambda (x,y): x*y > 25,.....map(None, xs*le

版本 1.5x 中各种技术的比较

>>>
    # Functional-style spaghetti for list comprehension
>>> filter(
    
     lambda
     (x,y): x*y > 25,
.....    map(None, xs*len(ys),
.....         reduce(
    
     lambda
     s,t: s+t,
.....             map(
    
     lambda
     y: [y]*len(xs), ys))))
[(3, 9), (4, 9), (5, 9), (4, 8), (5, 8), (4, 7), (5, 7), (5, 6)]
>>>
    # Nested loop procedural style for list comprehension
>>> bigmuls = []
>>>
    
     for
     x
    
     in
     xs:
.....  
    
     for
     y
    
     in
     ys:
.....    
    
     if
     x*y > 25:
.....       bigmuls.append((x,y))
>>>
    
     print
     bigmuls
[(3, 9), (4, 9), (4, 8), (4, 7), (5, 9), (5, 8), (5, 7), (5, 6)]

在我给出的示例中,嵌套的程序性循环比函数风格的调用更清晰(读者可能会注意到一种更好的函数方法)。但它们远不及列表内涵风格来得清晰。

通过一些程序员的实践,列表内涵可以代替大多数函数风格内置函数,以及许多嵌套循环的使用。

Python 2.0 中一个新的内置函数在与列表内涵结合时特别有用。可以通过想象拉链的牙齿来认识 zip() 的作用:将两个或多个序列组合成元组的列表(每个元组都具有来自每一调用序列的一个元素)。如果您不希望一个使用完整列表排列的列表内涵,而只是一个利用多个列表的相应元素,这通常是有用的。例如:

上一页  1 2 3 4 5 6 7 8  下一页

Tags:可爱 Python 获得

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接