Python函数式编程——apply()、filter()
一周前介绍了Python函数式编程中的匿名函数lambda,然后这一周忙了一些其他事情,以至于昨天晚上才写了一篇文章。今天继续Python函数式编程这个话题,介绍内建函数apply()
和filter()
。
介绍这两个内建函数主要是为了后面介绍map()
和reduce()
做准备,其中apply()
已经被有效取代,filter()
部分可由列表解析list comprehension代替。
阅读全文
一周前介绍了Python函数式编程中的匿名函数lambda,然后这一周忙了一些其他事情,以至于昨天晚上才写了一篇文章。今天继续Python函数式编程这个话题,介绍内建函数apply()
和filter()
。
介绍这两个内建函数主要是为了后面介绍map()
和reduce()
做准备,其中apply()
已经被有效取代,filter()
部分可由列表解析list comprehension代替。
阅读全文
Python虽然不是一种函数式编程语言,但仍然给予了函数式编程很大的重视。接下来的几篇文章我将记录一些Python函数式编程的知识,其中本文要说的是匿名函数lambda。
Python使用lambda关键字创造匿名函数。所谓匿名,意即不再使用def语句这样标准的形式定义一个函数。这种语句的目的是由于性能的原因,在调用时绕过函数的栈分配。其语法是:
阅读全文
在编程的过程中,我们可能会遇到函数参数个数不固定的情况。这时就需要使用可变长度的函数参数来实现我们的功能。在Python中,有两种变长参数,分别是元组(非关键字参数)和字典(关键字参数)。其调用方式是:func( *tuple_grp_nonkw_args, **dict_grp_kw_args )
,下面将详细介绍这两种变长参数。
Python中将两个字典进行合并操作,是一个比较常见的问题。本文将介绍几种实现两个字典合并的方案,并对其进行比较。
对于这个问题,比较直观的想法是将两个字典做相加操作,赋值给结果字典,其代码为:
1 |
dictMerged1 = dict( dict1.items() + dict2.items() ) |
然而,该方法合并时所用时间较长,效率更高的代码为:
1 |
dictMerged2 = dict( dict1, **dict2 ) |
仅以pythonic的官方解释替代Hello World!作为本博的第一篇文章。
>>> import this
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
The Zen of Python, by Tim Peters Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. Complex is better than complicated. Flat is better than nested. Sparse is better than dense. Readability counts. Special cases aren't special enough to break the rules. Although practicality beats purity. Errors should never pass silently. Unless explicitly silenced. In the face of ambiguity, refuse the temptation to guess. There should be one-- and preferably only one --obvious way to do it. Although that way may not be obvious at first unless you're Dutch. Now is better than never. Although never is often better than *right* now. If the implementation is hard to explain, it's a bad idea. If the implementation is easy to explain, it may be a good idea. Namespaces are one honking great idea -- let's do more of those! |
最新评论