removing items from a dictionary ?
Ben Finney
bignose+hates-spam at benfinney.id.au
Thu Jul 26 20:05:26 EDT 2007
Stef Mientki <S.Mientki-nospam at mailbox.kun.nl> writes:
> I want to remove some items from a dictionary,
> so I would expect this should work:
>
> Nets = {}
> ... fill the dictionary Nets
>
> for net in Nets:
> if net.upper() in Eagle_Power_Nets :
> del Nets [ net ]
Don't change the thing you're currently iterating over. Instead,
iterate over a copy:
>>> eagle_power_nets = ['eggs', 'beans']
>>> nets = {'spam': 10, 'eggs': 20, 'ham': 30}
>>> for name in list(nets.keys()):
... if name in eagle_power_nets:
... del nets[name]
...
>>> nets
{'ham': 30, 'spam': 10}
Style hints (from <URL:http://www.python.org/dev/peps/pep-0008/>):
* Don't name an instance with Upper_Case; the convention is for
instances to be named as lower_case_with_underscores, and classes to
be named in TitleCase.
* Don't put spaces inside the bracketing characters '[]', '{}', '()'.
* Don't separate the item specifier '[foo]' or the function parameters
'(bar)' from the identifier; instead follow it immediately,
'foo_list[foo]', 'bar_func(bar)'.
None of these are mandatory, but they'll make your code comply with
what Python programmers expect and thus be more easily maintained.
--
\ "Are you pondering what I'm pondering?" "Umm, I think so, |
`\ Brain, but what if the chicken won't wear the nylons?" -- |
_o__) _Pinky and The Brain_ |
Ben Finney
More information about the Python-list
mailing list