Skip to content

Commit 9f0f542

Browse files
committed
add flatten
1 parent e4acd61 commit 9f0f542

File tree

1 file changed

+18
-5
lines changed

1 file changed

+18
-5
lines changed

docs/10_递归/recursion.py

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ def fact(n):
55
if n == 0:
66
return 1
77
else:
8-
return n * fact(n-1)
8+
return n * fact(n - 1)
99

1010

1111
def print_num(n):
@@ -15,14 +15,14 @@ def print_num(n):
1515

1616
def print_num_recursive(n):
1717
if n > 0:
18-
print_num_recursive(n-1)
18+
print_num_recursive(n - 1)
1919
print(n)
2020

2121

2222
def print_num_recursive_revserve(n):
2323
if n > 0:
2424
print(n)
25-
print_num_recursive_revserve(n-1)
25+
print_num_recursive_revserve(n - 1)
2626

2727

2828
from collections import deque
@@ -54,6 +54,19 @@ def print_num_use_stack(n):
5454

5555
def hanoi_move(n, source, dest, intermediate):
5656
if n >= 1: # 递归出口,只剩一个盘子
57-
hanoi_move(n-1, source, intermediate, dest)
57+
hanoi_move(n - 1, source, intermediate, dest)
5858
print("Move %s -> %s" % (source, dest))
59-
hanoi_move(n-1, intermediate, dest, source)
59+
hanoi_move(n - 1, intermediate, dest, source)
60+
61+
62+
def flatten(rec_list):
63+
for i in rec_list:
64+
if isinstance(i, list):
65+
for i in flatten(i):
66+
yield i
67+
else:
68+
yield i
69+
70+
71+
def test_flatten():
72+
assert list(flatten([[[1], 2, 3], [1, 2, 3]])) == [1, 2, 3, 1, 2, 3]

0 commit comments

Comments
 (0)