(items, ignore_types=(str, bytes))
| 3 | from collections import Iterable |
| 4 | |
| 5 | def flatten(items, ignore_types=(str, bytes)): |
| 6 | for x in items: |
| 7 | if isinstance(x, Iterable) and not isinstance(x, ignore_types): |
| 8 | yield from flatten(x) |
| 9 | else: |
| 10 | yield x |
| 11 | |
| 12 | items = [1, 2, [3, 4, [5, 6], 7], 8] |
| 13 |