[Tutor] First real script

Luke Paireepinart rabidpoobear at gmail.com
Tue Nov 7 16:37:59 CET 2006


Carlos wrote:
> Hello to all,
>
> Ok, after reading your comments I ended up with this:
>
> #Easy_2DCA_01.py
> #A very basic 2D script that lets you play with Wolfram's rule 30
>
> A_List = [0]*10+[1]+[0]*10
> A_Len = len(A_List)
> B_List = []
> print A_List
> Iterations = 5
>
> rule_30 = {
>       (1, 1, 1) : 0,
>       (1, 1, 0) : 0,
>       (1, 0, 1) : 0,
>       (1, 0, 0) : 1,
>       (0, 1, 1) : 1,
>       (0, 1, 0) : 1,
>       (0, 0, 1) : 1,
>       (0, 0, 0) : 0,
>     }
>
> for j in range (Iterations):
>     for i in  range (A_Len):
>   
It seems to me you could just iterate on a range of A_Len-1 and then you 
wouldn't have to wrap around.
Perhaps you need it to work that way, though.  I'm not sure.
>         x = A_List[i-1]
>         y = A_List[i]
>
>         if i < A_Len-1:
>             z = A_List[i+1]
>
>         else:
>             z = A_List[0]
Can just become
x,y,z = A_List[i-1:i+1] + [A_List[(i+1) % A_Len]]

Though it's slightly less readable, it's also a  bit shorter :)
Alternately, you can leave your x and y definitions, and change
the if/else stuff to
z = A_List[(i+1) % A_Len]
At least I think so :)

HTH,
-Luke


More information about the Tutor mailing list