阵列内阵列展平的最优解

2024-06-28 12:24:26 发布

您现在位置:Python中文网/ 问答频道 /正文

寻找一个最优的解决方案。我的结构是

Source a = {
        "key1": [
            [
                0
            ],
            [
                1
            ]
        ],
        "key2": [
            [
                2
            ],
            [
                3
            ]
        ]
    }
    Target=[0][1][2][3]

有没有比下面更好的解决办法?你知道吗

    a_values=a.values()
    flatValues=[]
    for i in range(0,len(a_values)):
        flatValues=flatValues+a_values[i]

Tags: insourcetargetforlenrange解决方案结构
2条回答

您可以使用^{}

>>> from itertools import chain
>>> a = {"key1": [[0],[1]], "key2": [[2],[3]]}
>>> target_generator = chain(*a.values())
>>> target_list = [v for v in target_generator]
>>> print(target_list)
[[0], [1], [2], [3]]

N.B.target_list也可能是这样:[[2], [3], [0], [1]]

我想说[v for l in a.values() for sl in l for v in sl](或者[[v] for...,如果出于某种原因你真的想要一堆单元素列表)会更整洁。请注意,它可能没有按照您所想的顺序排序,因此如果这很重要,您可能需要在某个时候手动排序(取决于您的Python版本和实现)。你知道吗

相关问题 更多 >