对于循环/列表推导式,zip_longest用于列表列表组合得到(L1[0]:L2[0]),而不得到L1[0]:L2[1



我一直在努力组合列表列表...测试有关zip,zip_longest,列表,列表推导,通过不等长列表列表迭代的各种问题的答案,但是我一直无法找到解决我的问题。 我现在被打败了。

这很可能是我缺乏经验的结果,但我已经没有地方可以看了。

我有两个列表列表,内部列表具有不同的长度。

我想使用以下类型的结果zip_longest每个内部列表: [('1', '1.方法'), ('2', '2.方法'), ("说明"、"3.说明")等]

下面显示的尝试为我提供了我喜欢的结果,但代码生成器将list_1[0]与list_2[1]交叉组合。 我只想在同一索引(list_1[0] 与 list_2[0])上组合列表,然后是 1:1、2:2。

from itertools import zip_longest
claim_text = [['1. A method', '2. The method', '3. Description'],
['1. A method', '2. The method', '3. The method', '5. The method']]; 
claim_num =  [['1', '2'], ['1', '2', '3']]
combined = []
for i in claim_text:    
for x in claim_num:
combined.append(list(itertools.zip_longest(x,i, fillvalue='Description')))
print(combined)

另一种方法:

[(list(itertools.zip_longest(a,b, fillvalue='Description'))) for a in claim_num for b in claim_text]

任何帮助,不胜感激。

是否要用第一个文本zip_longest第一个数字,用第二个文本第二个 null,等等?

然后首先将两个输入的子列表与zip组合:

[list(zip_longest(a, b, fillvalue='Description'))
for a, b in zip(claim_num, claim_text)]

输出:

[[('1', '1. A method'),
('2', '2. The method'),
('Description', '3. Description')],
[('1', '1. A method'),
('2', '2. The method'),
('3', '3. The method'),
('Description', '5. The method')]]

最新更新