[Tutor] Remove a dictionary entry
Steven D'Aprano
steve at pearwood.info
Sat Sep 18 18:06:22 CEST 2010
On Sat, 18 Sep 2010 07:13:13 pm Peter Otten wrote:
> You should never iterate over a list or dictionary and add or remove
> items to it at the same time. That is a recipe for disaster even if
> it doesn't fail explicitly.
That's a bit strong. It's quite possible to modify lists safely and
correctly while iterating over them with a little bit of care.
You know, for decades people were able to program in languages like C
and Pascal and assembly, often on machines with tiny amounts of memory.
When your machine has 64K of memory, and the OS and application uses
half of it, you don't have the luxury of making a copy of a 20K list
before modifying it. Back when I was a lad, we learned how to modify
lists in place. It isn't hard. *wink*
Even in Python, it is sometimes necessary to modify lists and even dicts
in place while iterating over them. 98% of the time, making a copy is
faster, simpler and more efficient, but learning how to safely modify
data structures in place is a valuable skill to have.
But I'm just talking about general principles here. In most cases, stick
to Peter's advice to make a copy.
--
Steven D'Aprano
More information about the Tutor
mailing list