执行过程:第一次将列表中的前两个数取出来作为函数add的参数,第二次将上一次函数add的返回值与列表的第3个数作为参数,依此类推,最后得到一个值。这就是reduce的作用。有点像万物归一的感觉。
当然,如果只是计算列表中的元素之和,大可不必绕这么大弯子用reduce来处理,直接用 sum 函数就可以解决。
最后你会发现解法其实很多种,不过我们应该记住python之禅里面那句话:
There should be one-- and preferably only one --obvious way to do it.
用最合适的方式去做一件事 2. split()
split 接收一个参数,用于将字符串切割成列表,比如一段英文字符串按照空格切割就可以统计出单词的个数。
8. format
format 函数曾经字符串格式化最常用的函数,使用也是非常简单,但自从f字符串出现之后,format 的功能逐渐被取代,但是3.6之前还是可以常见到该函数的应用场景。
s = "{} is first name"
print(s.format("liu"))
如果需要占位符比较多搞不清次序的话,可以给每个占位符一个名字,这样就不拍对不上位置了。
s = "{first_name} is first name"
print(s.format(first_name="liu"))
9. join()
join 也是比较常用的一个内置函数,它可以将列表对象用指定的字符作为元素之间的连接,转换为字符串。
words = ['python', 'is', 'the', 'best', 'programming', 'language']
print(" ".join(words)) # 用空格连接 python is the best programming language
10. type
type 我认为是python最难理解的一个内置函数了,新手可能以为type就是一个用来查看某个对象的类型是什么,例如:
print(type(10)) # <class 'int'>
print(type([])) # <class 'list'>
print(type("s"))# <class 'str'>
它的另一个作用是可以用type来创建类,一般情况下,我们都用关键字 class 来定义一个类,而type也可以用来创建类。
>>> Person = type("Person", (), {"live":True})
>>> Person
<class '__main__.Person'>
第一个参数 Person是类的名字, 第二个参数用来指定父类是谁, 第三个参数是这个类的类属性有哪些。上面这段代码等价于:
>>> class Person:
... live = True
...
>>> Person
<class '__main__.Person'>