當前位置:成語大全網 - 新華字典 - python 2.7 字典叠代期間改變字典成員個數的疑問

python 2.7 字典叠代期間改變字典成員個數的疑問

因為可叠代對象如果在叠代過程中長度發生了變化,就會引發 Runtime Error ,所以在 for k in some_dict: 這樣的語句中,是不可以使用 .pop() 或 .update() 方法的。

除非明確知道這次操作中不會增刪被叠代對象的元素,否則應該先把對象的 keys 拿出來放到另壹個對象裏(keys() 方法返回的列表),以避免上面的異常。

但在 Python3 中, keys() 不再返回列表,而是被叠代對象的 dict_keys 屬性,所以這招行不通了。可以考慮 list 轉換、待叠代結束後再 pop 或者使用字典推導式。