Mark Lawrence schreef:
On 01/04/2015 11:50, Alan Gauld wrote:
On 01/04/15 11:04, Wolfgang Maier wrote:
On 04/01/2015 11:04 AM, Alan Gauld wrote:
On 01/04/15 05:50, Jim Mooney wrote:

s = [1,2,3,4,5,6,7,8]
list(zip(*[iter(s)]*2))
[(1, 2), (3, 4), (5, 6), (7, 8)]
Personally I'd have used slicing in this example:

zip(s[::2],s[1::2])

With an emphasis on *in this example*.

The idiom you are citing works on any iterable, not all of which support
slicing and the slicing version requires two passes over the data.
Agreed, but readability always trumps performance,
unless performance is critical.
In which case readability usually trumps performance.

And especially on a beginners list.


In which case I'll stick with the more-itertools pairwise() function

Which does not the same thing. Original:

>>>>>>>> s = [1,2,3,4,5,6,7,8]
>>>>>>>> list(zip(*[iter(s)]*2))
>>>>>>>> [(1, 2), (3, 4), (5, 6), (7, 8)]

Pairwise:

 >>> take(4, pairwise(count()))
[(0, 1), (1, 2), (2, 3), (3, 4)]


Greetings,
Roel

--
The saddest aspect of life right now is that science gathers knowledge
faster than society gathers wisdom.
  -- Isaac Asimov

Roel Schroeven

_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to