流畅的 Python 阅读记录一:杂项
这一部分主要是讲一下不是很清楚的知识点
1. namedtuple
, 可以使用它来快速创立一个类。
import collections
# 使用 namedtuple 可以创立一个类
Card = collections.namedtuple('Card', ['rank', 'suit'])
new_card = Card('7', 'diamonds')
print(new_card)
# output: Card(rank=7, suit='diamonds')
2. map
&& filter
是什么,此外这两个可以被代替
# 计算阶乘
def fact(n):
return 1 if n<2 else n*fact(n-1)
# 1\. map 和 filter 的基本使用
# [1, 1, 2, 6, 24, 120]
list(map(fact, range(6)))
# [1, 6, 120]
list(map(fact, filter(lambda n: n%2, range(6))))
# 2\. map 和 filter 现在都可以被别的方式代替了
[fact(i) for i in range(6)]
[fact(i) for i in range(6) if n % 2]
3. reduce
使用, 经常用于累加, 累乘, 累计异或...
import functools
functools.reduce(lambda a, b:a^b, range(6))