Skip to content

Commit 3df5ac1

Browse files
committed
add python_functional
1 parent 2bb6691 commit 3df5ac1

File tree

2 files changed

+76
-0
lines changed

2 files changed

+76
-0
lines changed

Diff for: README.md

+2
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
### python_oneline.py: 几个小例子告诉你, 一行Python代码能干哪些事
1818

1919
### python_requests.py: Python中最好用的爬虫库Requests代码实例
20+
21+
### python_functional.py: Python进阶: 函数式编程实例(附代码)
2022
============================================================
2123

2224
### 您可以fork该项目,并在修改后提交Pull request

Diff for: python_functional.py

+74
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,74 @@
1+
# _*_ coding: utf-8 _*_
2+
3+
from fn import _
4+
from operator import add
5+
from functools import partial, reduce
6+
7+
# 列表解析
8+
a_list = [item**2 for item in range(5)]
9+
print(a_list)
10+
11+
# 字典解析
12+
a_dict = {"%d^2" % item: item**2 for item in range(5)}
13+
print(a_dict)
14+
15+
# 生成器
16+
a_generator = (item**2 for item in range(5))
17+
print(a_generator)
18+
print(next(a_generator))
19+
print(next(a_generator))
20+
21+
# iter函数和next函数
22+
a_list_generator = iter(a_list)
23+
print(next(a_list_generator))
24+
print(next(a_list_generator))
25+
print(type(a_list), type(a_list_generator))
26+
27+
# lambda表达式
28+
a_func = lambda x, y: x**y
29+
print(a_func(2, 3))
30+
31+
# map函数
32+
print(map(abs, range(-4, 5)))
33+
print(list(map(abs, range(-4, 5))))
34+
print(list(map(lambda x: x**2, range(5))))
35+
print(list(map(lambda x, y: x**y, range(1, 5), range(1, 5))))
36+
37+
# reduce函数
38+
print(reduce(lambda x, y: x+y, range(10)))
39+
print(reduce(lambda x, y: x+y, range(10), 100))
40+
print(reduce(lambda x, y: x+y, [[1, 2], [3, 4]], [0]))
41+
42+
# filter函数
43+
print(filter(None, range(-4, 5)))
44+
print(list(filter(None, range(-4, 5))))
45+
print(list(filter(lambda x: x > 0, range(-4, 5))))
46+
47+
# all、any函数
48+
print(all([0, 1, 2]))
49+
print(any([0, 1, 2]))
50+
51+
# enumerate函数
52+
for index, item in enumerate(range(5)):
53+
print("%d: %d" % (index, item))
54+
55+
# zip函数
56+
for a, b in zip([1, 2, 3], ["a", "b", "c"]):
57+
print(a, b)
58+
a_dict = dict(zip([1, 2, 3], ["a", "b", "c"]))
59+
print(a_dict)
60+
61+
# partial函数
62+
print(int("10010", base=2))
63+
int_base_2 = partial(int, base=2)
64+
print(int_base_2("10010"))
65+
66+
# operator.add函数
67+
print(reduce(lambda x, y: x+y, range(10)))
68+
print(reduce(add, range(10)))
69+
70+
# fn的使用
71+
add_func_1 = (_ + 2)
72+
print(add_func_1(1))
73+
add_func_2 = (_ + _ * _)
74+
print(add_func_2(1, 2, 3))

0 commit comments

Comments
 (0)