我试图并行遍历两个列表的列表索引,以便将第一个列表中的ith号和第二个列表中的ith号之间的范围附加到新变量中,每个范围都在其自己的列表中。我不想在范围中包括第一个数字,因此对于第一次迭代,输出将为[2,3]列表如下:

def_idx = [1,13,23]
return_id = [3,14,25]
line_idx = []`


line_idx的期望输出如下:
line_idx = [[2, 3], [14], [24, 25]]

由于列表过多,因此我的尝试没有成功:

line_idx = []
for i, j in enumerate(def_idx):
    line_idx.append([list(range(j + 1, return_idx[i] + 1))])


任何帮助将不胜感激,如果问题不明确,那么我很高兴提供进一步的解释。

最佳答案

使用zip

In [4]: line_idx = [list(range(i + 1, j + 1)) for i, j in zip(def_idx, return_idx)]

In [5]: line_idx
Out[5]: [[2, 3], [14], [24, 25]]


没有op要求的zip

In [10]: line_idx = [list(range(j + 1, return_idx[i] + 1)) for i, j in enumerate
...: (def_idx)]

In [11]: line_idx
Out[11]: [[2, 3], [14], [24, 25]]


数组不可迭代的另一种低级语言,例如版本:

In [12]: line_idx = [list(range(def_idx[i] + 1, return_idx[i] + 1)) for i in ran
...: ge(len(def_idx))]

In [13]: line_idx
Out[13]: [[2, 3], [14], [24, 25]]

关于python - 使用相同的索引并行遍历2个列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59185651/

10-12 07:22
查看更多