[Tutor] Alternating patterns
kevin parks
kp8 at mac.com
Wed Mar 29 07:33:10 CEST 2006
>
>
>
> ------------------------------
>
> Message: 10
> Date: Tue, 28 Mar 2006 22:43:38 -0500
> From: Kent Johnson <kent37 at tds.net>
> Subject: Re: [Tutor] Alternating patterns
> Cc: tutor at python.org
> Message-ID: <442A026A.9010107 at tds.net>
> Content-Type: text/plain; charset=ISO-8859-1; format=flowed
>
> kevin parks wrote:
>> I have a set that i iterate over... but each time through it i would
>> like to alternate between the original set and a variation of the set
>> that has one of the members of the set altered (by + or - 1)
>>
>> So if my original set is:
>>
>> [0, 2, 4, 5, 7, 9, 11]
>>
>> I would use that the first pass but on the second pass i might like
>> the third member (4,) to become 3, (-1) resulting in : [0, 2, 3, 5, 7,
>> 9, 11]
>>
>> But then back again to the original on the next pass (+1 back to 4,):
>> [0, 2, 4, 5, 7, 9, 11]
>>
>> and then back: [0, 2, 3, 5, 7, 9, 11] again, etc.
>
>> How can one make such alternating patterns?
>
> itertools.cycle() will repeat a sequence indefinitely:
> In [2]: from itertools import cycle
>
> In [3]: i=cycle([1,2])
>
> In [5]: for j in range(6):
> ...: print i.next()
> ...:
> ...:
> 1
> 2
> 1
> 2
> 1
> 2
>
> For non-repeating sequences I would look at writing a generator
> function
> for the sequences.
>
> Kent
okay.. i am painfully unaware of generators, iterators, sets, genexes
and a lot of the new stuff post 2.3 & 2.4 stuffs... my problem is that
i find the online docs kind of terse and few of the Python books yet
cover these newer constructs in detail....
itertools looks very cool.... are there any toots on the above and on
Sets & itertools? It really seems like it would help to know these for
my work... That liddo bit right up there with itertools.cycle already
has me a drooling... (so helpful that would be!)
-kp--
More information about the Tutor
mailing list