我有一個Python的deque,我正在迭代。有時候,我在進行交易時發生變化,產生RuntimeError: deque mutated during iteration
。添加到在Python中迭代的deque?
如果這是一個Python列表而不是雙端隊列,我只需迭代列表的一個副本(通過像my_list[:]
這樣的片,但由於片操作不能在deques上使用,我不知道什麼是最pythonic處理這種方式是?
我的解決方案是導入複製模塊,然後遍歷副本,如for item in copy(my_deque):
這很好,但由於我搜索這個主題的高低,我想我會在這裏發帖問?
爲什麼在迭代時改變'deque'?你能顯示一些代碼嗎? – thefourtheye
對於正在對deque進行修改的迭代,你期望發生什麼? – martineau
至於我爲什麼要改變它,這個雙排隊是用來在彈球機軟件應用程序中保存一堆活動模式的隊列,並且當模式被服務時,其他模式可以被啓動並被添加到雙端隊列。 我很好,沒有調用迭代過程中出現的任何東西,或者調用迭代過程中刪除的任何東西。真的,我想迭代迭代開始時迭代,因此複製。 –