使用相同索引并行遍历 2 个列表

ged*_*133 1 python loops list

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

def_idx = [1,13,23]
return_id = [3,14,25]
line_idx = []`
Run Code Online (Sandbox Code Playgroud)

所需的输出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))])
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,如果问题不清楚,那么我很乐意提供进一步的解释。

mam*_*mun 5

使用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]]
Run Code Online (Sandbox Code Playgroud)

没有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]]
Run Code Online (Sandbox Code Playgroud)

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

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]]
Run Code Online (Sandbox Code Playgroud)