新手入门Python 语法

Python 是一门用途广泛、易读、而且容易入门的编程语言。

但同时 Python 语法也允许我们做一些很奇怪的事情。

使用 lambda 表达式重写多行函数
众所周知 python 的 lambda 表达式不支持多行代码。但是可以模拟出多行代码的效果。

def f():
    x = 'string'
    if x.endswith('g'):
        x = x[:-1]
    r = ''
    for i in xrange(len(x)):
        if x[i] != 'i':
            r += x[i]
    return r
f()
-> 'strn'

虽然看起来很奇怪,但是上面的函数可以使用下面的 lambda 表达式函数代替:

(lambda: ([x for x in ['string']], x.endswith('g') and [x for x in [x[:-1]]], [r for r in ['']], [x[i] != 'i' and [r for r in [r+x[i]]] for i in xrange(len(x))], r)[-1])()
-> 'strn'

永远不要在生产环境写这样的代码

上一篇:Python2.x与3​​.x版本区别


下一篇:Python中range和xrange的区别