擅长:python、mysql、java
<p>这就是我要做的。这与前面的答案非常相似,但是它在应用程序中更通用,因为它允许除字符串类型对象(即列表和元组)之外的任何类型的iterable被展平,并且它还允许非字符串对象列表的扁平化。在</p>
<pre><code># Python 3.
from collections import abc
def flatten(obj):
for o in obj:
# Flatten any iterable class except for strings.
if isinstance(o, abc.Iterable) and not isinstance(o, str):
yield from flatten(o)
else:
yield o
data = ('a', ('b', 'c'), [1, 2, (3, 4.0)], 'd')
result = list(flatten(data))
assert result == ['a', 'b', 'c', 1, 2, 3, 4.0, 'd']
</code></pre>