Skip to content

Commit 6609bd8

Browse files
realpython-botrealpython-bot
andauthored
Add recursive and iterative flatten examples for python-flatten-list (#760)
Co-authored-by: realpython-bot <noreply@realpython.com>
1 parent 9e15076 commit 6609bd8

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
def flatten(nested):
2+
flat = []
3+
stack = [iter(nested)]
4+
while stack:
5+
for item in stack[-1]:
6+
if isinstance(item, list):
7+
stack.append(iter(item))
8+
break
9+
flat.append(item)
10+
else:
11+
stack.pop()
12+
return flat
13+
14+
15+
flatten([1, [2, [3, [4, [5, 6]]]], 7, [8, 9]])
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
def flatten(nested):
2+
flat = []
3+
for item in nested:
4+
if isinstance(item, list):
5+
flat.extend(flatten(item))
6+
else:
7+
flat.append(item)
8+
return flat
9+
10+
11+
nested = [1, [2, [3, [4, [5, 6]]]], 7, [8, 9]]
12+
flatten(nested)

0 commit comments

Comments
 (0)