print([some_data[name]['indices'] for name in some_data.keys()])
[[[0, 0], [1, 0], [2, 0], [2, 1]], [[3, 0], [3, 1], [1, 1], [0, 1]], ...]
[[0, 0], [1, 0], [2, 0], [2, 1], [3, 0], [3, 1], [1, 1], [0, 1], ...]
尝试此方法告诉我'list'对象没有属性'result':One liner for extend loop python
是否可以对我的代码进行更改以获得单行解决方案?
预先感谢
答案 0 :(得分:0)
topList = [[1,2],[3,4]]
flatList = [item for subList in topList for item in subList]
答案 1 :(得分:0)
您正正确地将tge列表作为单个列表。 print()添加了额外的[]。打印为对象添加对象类型。
答案 2 :(得分:0)
对于那些刚刚使用itertools.chain
删除了答案的人-该方法奏效了,我将接受您的答案。最终代码:
list(itertools.chain(*[some_data[name]['indices'] for name in some_data.keys()]))
编辑:决定不使用@Rocky Li的答案中的itertools
:
[e for name in some_data.keys() for e in some_data[name]['indices']]
答案 3 :(得分:0)
这是您需要的吗?例如。给出:
some_data = {'a': {'indices': [[0, 0], [1, 1]]}, 'b': {'indices': [[2, 2], [3, 3]]}}
您想要子列表,对吗?因此,我们可以这样做:
[j for i in some_data for j in some_data[i]['indices']]
返回:
[[0, 0], [1, 1], [2, 2], [3, 3]]