2024-06-28 12:24:26 发布
网友
寻找一个最优的解决方案。我的结构是
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]
您可以使用^{}:
>>> 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]]
target_list
[[2], [3], [0], [1]]
我想说[v for l in a.values() for sl in l for v in sl](或者[[v] for...,如果出于某种原因你真的想要一堆单元素列表)会更整洁。请注意,它可能没有按照您所想的顺序排序,因此如果这很重要,您可能需要在某个时候手动排序(取决于您的Python版本和实现)。你知道吗
[v for l in a.values() for sl in l for v in sl]
[[v] for...
您可以使用^{} :
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版本和实现)。你知道吗相关问题 更多 >
编程相关推荐