python 中一些方法小记

['a\n'].strip() 可以去掉'\n'


map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])
['1', '2', '3', '4', '5', '6', '7', '8', '9']
def add(x, y):
     return x + y  
reduce(add, [1, 3, 5, 7, 9]) ##25

删除100以内的素数:

def f(x):
    if x == 1:
        return True
    else:
        for i in range(2,x):
            if x%i ==0:
                return True
        return False

print filter(f,range(1,101))

返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。

def count():
    fs = []
    for i in range(1, 4):
        def f():
             return i*i
        fs.append(f)
    return fs

f1, f2, f3 = count()  ## 9,9,9

如果一定要引用循环变量怎么办?方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:

>>> def count():
...     fs = []
...     for i in range(1, 4):
...         def f(j):
...             def g():
...                 return j*j
...             return g
...         fs.append(f(i))
...     return fs
... 
>>> f1, f2, f3 = count()
>>> f1()
1
>>> f2()
4
>>> f3()
9

匿名函数lambda x: x * x实际上就是:

def f(x):
    return x * x

匿名函数只能有一个表达式,不用写return,返回值就是该表达式的结果。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,491评论 19 139
  • 要点: 函数式编程:注意不是“函数编程”,多了一个“式” 模块:如何使用模块 面向对象编程:面向对象的概念、属性、...
    victorsungo阅读 5,510评论 0 6
  • 我喜欢春天旖旎的风,和煦撩人,轻轻撩拨着复苏的万物; 我喜欢夏天盈盈的草,坚韧顽强,倔强的与炎炎烈日对抗; 我喜欢...
    少年好久不见阅读 2,206评论 0 0
  • Missstarbucks阅读 819评论 0 0
  • 《我梦里的海》 文/小来 在梦里听说 你很蓝 蓝的美到至极 却没有真实的见过 有人说,你凶恶 能把巨轮掀翻 有人说...
    松风入骨阅读 3,177评论 59 71