Erlang和Ruby都具有用于平坦化数组的功能。似乎是一种添加到语言的简单实用的工具。一个可以做到这一点:
>>> mess = [[1, [2]], 3, [[[4, 5]], 6]]
>>> mess.flatten()
[1, 2, 3, 4, 5, 6]
甚至:
>>> import itertools
>>> mess = [[1, [2]], 3, [[[4, 5]], 6]]
>>> list(itertools.flatten(mess))
[1, 2, 3, 4, 5, 6]
取而代之的是,在Python中,必须经历编写从头开始使数组变平的函数的麻烦。对我来说这似乎很愚蠢,将数组展平是一件很平常的事情。这就像必须编写一个自定义函数来连接两个数组。
我已经无能为力地搜索了Google,所以我在这里问。为什么有一个特定的原因,为什么像Python 3这样的成熟语言(附带十万种不同的电池)无法提供简化数组的简单方法?是否曾经讨论过并拒绝包含这种功能的想法?
extend
但扁平化会更加优雅。但是,如果这种模式足够普遍,足以证明在标准库中变平,我就很伤心。