Skip to content

流畅的 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))

Comments