Iterators.flatten(x)
创建一个迭代每个元素的生成器x
。它可以处理您描述的一些情况,例如
julia> collect(Iterators.flatten([(1,2,3),[4,5],6]))
6-element Array{Any,1}:
1
2
3
4
5
6
如果您有数组和元组的数组,您可能应该重新考虑您的数据结构,因为它听起来类型不稳定。但是,您可以使用多个调用flatten
, eg
julia> collect(Iterators.flatten([(1,2,[3,3,3,3]),[4,5],6]))
6-element Array{Any,1}:
1
2
[3, 3, 3, 3]
4
5
6
julia> collect(Iterators.flatten(Iterators.flatten([(1,2,[3,3,3,3]),[4,5],6])))
9-element Array{Any,1}:
1
2
3
3
3
3
4
5
6
请注意我的所有示例如何返回Array{Any,1}
。这对性能来说是一个坏兆头,因为这意味着编译器无法确定输出数组元素的单个具体类型。我选择这些示例是因为我阅读您问题的方式听起来您可能已经拥有类型不稳定的容器。