2012-08-23 21 views

回答

4

在這種情況下,扁平表示去除嵌套。例如,嵌套數組數組(每個元素是一個數組)的數組;如果我們弄平它,我們得到一個整數數組,它包含相同順序的相同值,但在一個數組中相鄰,而不是分成幾個數組:[[1 2] [3 4]] -> [1 2 3 4]。與迭代器,其他集合和更深的嵌套(字符串迭代器集合數組)的區別相同。

至於成語,並不是很多 - 這不是一個普通的任務,而且通常很簡單。請注意,對於常規數組(所有嵌套數組的大小相同),nested[i][j]相當於nested[i * INNER_ARRAY_SIZE + j]。這有時用於避免嵌套,特別是在將數組視爲引用類型的語言中,因此如果嵌套它們,則需要許多單獨分配的數組。在Python中,您可以使用itertools.chain(*iterable_of_iterables)平滑迭代。

+1

-1扁平化iterables的標準python成語是使用'itertools.chain'。 – Marcin

+1

@Marcin好的,謝謝。添加。 – delnan

1

展平意味着去除序列類型的嵌套。 Python爲此提供了itertools.chain(*iterables)(http://docs.python.org/library/itertools.html#itertools.chain)。