Commit 9ce9f779 authored by Raymond Hettinger's avatar Raymond Hettinger

Improve tutorial suggestion for looping techniques

parent 6a31bb5c
...@@ -664,18 +664,18 @@ retrieved at the same time using the :meth:`iteritems` method. :: ...@@ -664,18 +664,18 @@ retrieved at the same time using the :meth:`iteritems` method. ::
gallahad the pure gallahad the pure
robin the brave robin the brave
To change a sequence you are iterating over while inside the loop (for It is sometimes tempting to change a list while you are looping over it;
example to duplicate certain items), it is recommended that you first make however, it is often simpler and safer to create a new list instead. ::
a copy. Looping over a sequence does not implicitly make a copy. The slice
notation makes this especially convenient:: >>> import math
>>> raw_data = [56.2, float('NaN'), 51.7, 55.3, 52.5, float('NaN'), 47.8]
>>> words = ['cat', 'window', 'defenestrate'] >>> filtered_data = []
>>> for w in words[:]: # Loop over a slice copy of the entire list. >>> for value in raw_data:
... if len(w) > 6: ... if not math.isnan(value):
... words.insert(0, w) ... filtered_data.append(value)
... ...
>>> words >>> filtered_data
['defenestrate', 'cat', 'window', 'defenestrate'] [56.2, 51.7, 55.3, 52.5, 47.8]
.. _tut-conditions: .. _tut-conditions:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment