Skip to main content
 首页 » 编程设计

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

2025年05月04日17myhome

我试图并行遍历两个列表的列表索引,以便将第一个列表中的第 i 个数字和第二个列表中的第 i 个数字之间的范围附加到一个新变量,每个范围都在其自己的列表中.我不想包含范围中的第一个数字,因此对于第一次迭代,输出将是 [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]] 

没有操作要求的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]]