A=[[[1,2],[1,3],[2,5]],[[2,4],[2,5],[2,6]],[[3,5],[3,6]]]
想转化为B=[[1,2],[1,3],[2,5],[2,4],[2,5],[2,6],[3,5],[3,6]]
A=[[[1,2],[1,3],[2,5]],[[2,4],[2,5],[2,6]],[[3,5],[3,6]]]
想转化为B=[[1,2],[1,3],[2,5],[2,4],[2,5],[2,6],[3,5],[3,6]]
sum(A, [])
和 reduce(lambda x, y: x+y, A)
都可以实现这个功能,
题目明确是三维数组还好办,
如果不确定每个元素的数组维度,需要做一个深度遍历
以下为python3代码:
def dfs(tree):
for i in tree:
if type(i) == list:
yield from dfs(i)
else:
yield tree
break
B = list(dfs(A))
用列表推导式就行
a=[[[1,2],[1,3],[2,5]],[[2,4],[2,5],[2,6]],[[3,5],[3,6]]]
[j for i in a for j in i]
1 回答9.5k 阅读✓ 已解决
2 回答5.1k 阅读✓ 已解决
2 回答3.5k 阅读✓ 已解决
3 回答4.4k 阅读
2 回答2.4k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
print reduce(lambda x, y: [x.extend(y), x][1], A, []) == B