Can a List Comprehension do ____ ?

Peter Otten __peter__ at web.de
Thu Jul 15 10:49:35 CEST 2004


Marc Boeren wrote:

>> >>> breaks = [(133, 137), (181, 185), (227, 231), (232, 236),
>> (278, 282),
>> (283, 287), (352, 356), (412, 416), (485, 489), (490, 494)]
>> >>> it = iter(breaks)
>> >>> [(start, end) for ((_, start), (end, _)) in zip(it, it)]
>> [(137, 181), (231, 232), (282, 283), (356, 412), (489, 490)]
>> >>>
> 
> That's not quite the result the OP wanted (it misses e.g. (185, 227)),

Silly me :(

Here's another one, using window() from the itertools examples:

>>> [(start, end) for ((_, start), (end, _)) in window(breaks)]
[(137, 181), (185, 227), (231, 232), (236, 278), (282, 283), (287, 352),
(356, 412), (416, 485), (489, 490)]

Peter




More information about the Python-list mailing list