This is a GREAT application for generators!
def cycle(seq, index):
l = len(seq)
for i in range(len(seq)):
cursor = (i + index) % l
yield seq[cursor]
Then you just pass it the starting index you want, and all is well in the
world. :-)
Also, gratuitous use of the enumerate function in for-loops is grand:
for x_index, x in enumerate(myres):
if not x in DON:
continue
for y_index, y in enumerate(cycle(myres)):
print x, y
if y in ALL:
a[x_index][y_index] = 1
print '-'
--
I enjoy haiku
but sometimes they don't make sense;
refrigerator?
On Mon, May 24, 2010 at 10:35 AM, Bala subramanian <
[email protected]> wrote:
> Friends,
> I have a list. I have to do some comparison of each item in the list with
> each other items in the list.
>
> from numpy import zeros
> a=zeros((5,5))
>
> myres=['R', 'N', 'L', 'C', 'M']
> DON=['R','N','L'] ; ALL=['R','L','M','S']
>
> for x in myres:
> for y in myres:
> if x in DON:
> if y in ALL: a[res.index(x),res.index(y)] = 1
> else: continue
>
> But here the value of y changes sequentially. I want y to cycle through the
> list something like the following. Is there any function to do such circular
> iteration.
> cycle 1 y's value should be 'N', 'L', 'C', 'M, 'R' index 1,2,3,4,0 of
> myres
> cycle 2 y's value should be 'L', 'C', 'M, 'R', 'N' index 2,3,4,0,1
> ,,
> cycle 3 y's value should be 'C', 'M', 'R', 'N','L' index 3,4,0,1,2
> ,,
>
> Thank you,
> Bala
>
>
>
> _______________________________________________
> Tutor maillist - [email protected]
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor
>
>
_______________________________________________
Tutor maillist - [email protected]
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor