Python: deque out of index,为什么?

Python: deque out of index, why?

我有一个包含字符串格式 ID 的列表 (list_id)。我创建了一个双端队列(de_list_id),数字从1到长度list_id,这样我就可以引用list_id的每个元素。 此外,我还有一个功能可以检查文件(带有特定 ID)是否在线备份。我希望循环重复直到一切都在线。我写道:

while de_list_id:
    k = de_list_id.popleft()  #take the first element and check if it is online
    status = check(arg1, arg2, list_id[de_list_id[k]], arg3)

    if status:
        dl_routine(arg1, arg2, list_id[de_list_id[k]], arg3)  # if so, download and remove
    else:
       de_list_id.append(k)  # if not, append it back to list

但是returns:

IndexError: deque index out of range

有谁知道为什么以及如何解决这个问题?任何帮助将非常感激。提前致谢!

我怀疑这是哪里出了问题:

k = de_list_id.popleft()  
status = check(arg1, arg2, list_id[de_list_id[k]], arg3)

您从队列中弹出索引 k,然后通过 de_list_id[k]?

将其用于 select 队列本身的索引

根据你的描述,我认为你想做这样的事情:

k = de_list_id.popleft()  
status = check(arg1, arg2, list_id[k], arg3)

dl_routine(arg1, arg2, list_id[de_list_id[k]], arg3) -> dl_routine(arg1, arg2, list_id[k], arg3).

相同