Emille, Thank you for the example of list splicing. Do you know if this is faster than a more conventional loop statement as in my code for primearray which is in my original post (reprinted here)
The code is as follows: def BuildSieve(itemsin): TheSieve=list() TheSieve = range(0,itemsin+1) TheSieve[1]=0 for i in range(2,itemsin+1): if (TheSieve[i] > 0): j = i + i while (j <= itemsin): TheSieve[j] = 0 j+=i return TheSieve It is called with PrimaryList = BuildSieve(1000000) Again, thank you for your help. Robert On Wed, 2009-06-17 at 17:01 -0700, Emile van Sebille wrote: > On 6/17/2009 4:48 PM Robert Berman said... > > Emile, > > > > Thank your for your comments. I do have a list running from 0-1000001. > > Yes, it is true, I only needed 0 - 100000 and yes I will change it. > > However, if you use primearray > > you haven't posted the primearray code... > > <snip> > > > > However, for the time being, can you perhaps share some suggestions on > > list splicing? > > So, this part of your original post-- > > Out[53]: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12] > > > > Since 3 is a prime, we can eliminate all multiples of 3. Within l1, > > these are expressed as > > > > In [52]: l1[n+n:len(l1):n] > > Out[52]: [6, 9, 12] > > > > when n = 3. ( do know 12 would have been eliminated by the prime > > number 2) > > > > It would be great if I could say l1[n+n:len(l1):n] = 0 > > but you can say: > > for ii in l1[n+n:len(l1):n]: l1[ii] = 0 > > Is something like that what you're after? > > Emile > > > > > but obviously > > > > that will fail for obvious reasons. I am looking for the right hand > > side of the statement to set a list within the list to all zeros. > --- > > _______________________________________________ > Tutor maillist - Tutor@python.org > http://mail.python.org/mailman/listinfo/tutor
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor