我试图并行遍历两个列表的列表索引,以便将第一个列表中的第 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)
任何帮助将不胜感激,如果问题不清楚,那么我很乐意提供进一步的解释。
使用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)
| 归档时间: |
|
| 查看次数: |
54 次 |
| 最近记录: |