我试图并行遍历两个列表的列表索引,以便将第一个列表中的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/