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)
.
相同
我有一个包含字符串格式 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]
?
根据你的描述,我认为你想做这样的事情:
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)
.