构建来自嵌套列表的元组

2024-06-28 19:34:14 发布

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

嗨,请问我如何将嵌套列表中的元组附加到字典列表中,以形成新的元组列表,如下所示:

nde = [{'length': 0.35, 'modes': 'cw', 'type': '99', 'lanes': 9},
           {'length': 0.48, 'modes': 'cw', 'type': '99', 'lanes': 9},
           {'length': 0.88, 'modes': 'cw', 'type': '99', 'lanes': 9}]

dge = [[(1001, 7005),(3275, 8925)], [(1598,6009),(1001,14007)]]

我如何附加它们以使结果格式化为:

rslt = [(1001, 7005, {'length': 0.35, 'modes': 'cw', 'type': '99', 'lanes': 9}... ]

我试过这个:

[(k1[0], k1[1], k2) for k1, k2 in zip(dge, nde)]

但并没有达到预期的效果。谢谢


Tags: in列表for字典typek2k1length
2条回答

首先需要展平列表列表,然后将其与zip一起使用:

>>> from itertools import chain
>>> [(k1[0], k1[1], k2) for k1, k2 in zip(chain.from_iterable(dge), nde)]
[(1001, 7005, {'lanes': 9, 'length': 0.35, 'type': '99', 'modes': 'cw'}),
 (3275, 8925, {'lanes': 9, 'length': 0.48, 'type': '99', 'modes': 'cw'}),
 (1598, 6009, {'lanes': 9, 'length': 0.88, 'type': '99', 'modes': 'cw'})]

文件:^{}

您有嵌套列表,所以在ziping之前应该将它们展平:

import itertools
[(k1[0], k1[1], k2) for k1, k2 in zip(itertools.chain(*dge), nde)]

相关问题 更多 >