擅长:python、mysql、java
<p>这是受<a href="https://stackoverflow.com/questions/47983117/flattening-a-multilevel-list-of-lists-to-a-single-level">Flattening a multilevel list of lists to a single level</a>启发而来的,应该适用于任意数量的嵌套级别和大多数iterable类型</p>
<pre class="lang-py prettyprint-override"><code>from collections.abc import Iterable
def flatten(lst):
for el in lst:
# Strings a considered values not iterables here
if isinstance(el, Iterable) and not isinstance(el, str):
# Go deep
yield from flatten(el)
else:
# Non iterable, non int values are discarded
if not isinstance(el, int):
continue
# Int value to consider for max lookup
yield el
l = [
['A', [4, 5, 6]],
['B', {7, 8, 90}],
['C', (2, 3)],
['D', {14: True}],
['E',
[10, [0, 1, 100]],
]
]
m = max(flatten(l))
print(m)
</code></pre>
<p>运行示例:<a href="https://repl.it/@GuillaumeDeslandes/multi-level-flatten" rel="nofollow noreferrer">https://repl.it/@GuillaumeDeslandes/multi-level-flatten</a></p>