gpt4 book ai didi

python - 重构嵌套的 python 列表

转载 作者:太空宇宙 更新时间:2023-11-03 14:46:07 24 4
gpt4 key购买 nike

假设我们有一个包含 3 层的嵌套列表 (D1=2,D2=3,M=2),例如:

l = [[[1,a],[2,b],[3,c]], [[4,d],[5,e],[6,f]]]

我想弄清楚是否有任何 pythonic 方法来构建 2 个具有 2 个级别(D1=2,D2=3)的新嵌套列表,例如:

l1 = [[1,2,3], [4,5,6]]
l2 = [[a,b,c], [d,e,f]]

那么我们可能有 N 层,最深层的列表包含 M 个元素(D1,D2,D3, ..., D_N-1,M),目标始终是用 N-1 构建嵌套的 M 个列表水平。

换句话说,我们需要通过拆分较低级别来保留层次结构。

其他例子:

l = [[[[13076, 0, 0], [806, 0, 0]], [[13076, 0, 0], [2, 0, 0]]]], [[[[2066, 0, 0], [8, 0, 0]], [[42, 0, 0], [4147, 0, 0]]]]

l1 = [[[13076,806], [13076,2]], [[2066,8],[42,4147]]]
l2 = [[[0,0], [0,0]], [[0,0], [0,0]]]
l3 = [[[0,0], [0,0]], [[0,0], [0,0]]]

最佳答案

numpy 语法对于这个任务很方便:

import numpy as np

l = [[[1, 'a'], [2, 'b'], [3, 'c']],
[[4, 'd'], [5, 'e'], [6, 'f']]]

a = np.array(l)

l1 = a[:, :, 0].astype(int).tolist()

# [[1, 2, 3], [4, 5, 6]]

l2 = a[:, :, 1].tolist()

# [['a', 'b', 'c'], ['d', 'e', 'f']]

关于python - 重构嵌套的 python 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49233880/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com