Re: in-place string reversal

2006-03-28 Thread Felipe Almeida Lessa
Em Ter, 2006-03-28 às 17:32 +0100, Sion Arrowsmith escreveu: > ride. And at some point reversed() will become a win: > > $ python2.4 -mtimeit 'reversed(range(200))' > 10 loops, best of 3: 6.65 usec per loop > $ python2.4 -mtimeit 'range(200)[::-1]' > 10 loops, best of 3: 6.88 usec per loop

Re: in-place string reversal

2006-03-28 Thread olsongt
Sathyaish wrote: > How would you reverse a string "in place" in python? I am seeing that > there are a lot of operations around higher level data structures and > less emphasis on primitive data. I am a little lost and can't find my > way through seeing a rev() or a reverse() or a strRev() functio

Re: in-place string reversal

2006-03-28 Thread Fredrik Lundh
Sion Arrowsmith wrote: > But note that a significant chunk is the join(): > > $ python2.4 -mtimeit '"".join(reversed("foo"))' > 10 loops, best of 3: 2.72 usec per loop > $ python2.4 -mtimeit 'reversed("foo")' > 100 loops, best of 3: 1.69 usec per loop your second benchmark doesn't do any

Re: in-place string reversal

2006-03-28 Thread Sion Arrowsmith
Felipe Almeida Lessa <[EMAIL PROTECTED]> wrote: >Em Ter, 2006-03-28 às 16:03 +0100, Sion Arrowsmith escreveu: >> >>> "".join(reversed("foo")) >$ python2.4 -mtimeit '"".join(reversed("foo"))' >10 loops, best of 3: 2.58 usec per loop But note that a significant chunk is the join(): $ python2.

Re: in-place string reversal

2006-03-28 Thread Adam DePrince
On Tue, 2006-03-28 at 06:15 -0800, Sathyaish wrote: > And that the "extra-memory" operation I've given above is expensive, I > believe. Is there an efficient way to do it? > How big is your string? For short strings (i.e. where large means you don't have enough RAM to hold one extra copy.) >

Re: in-place string reversal

2006-03-28 Thread Felipe Almeida Lessa
Em Ter, 2006-03-28 às 16:03 +0100, Sion Arrowsmith escreveu: > Rather than writing > your own reversing code, you might like to look at: > > >>> "".join(reversed("foo")) Or not: $ python2.4 Python 2.4.2 (#2, Nov 20 2005, 17:04:48) [GCC 4.0.3 2005 (prerelease) (Debian 4.0.2-4)] on linux2

Re: in-place string reversal

2006-03-28 Thread Yu-Xi Lim
Sathyaish wrote: >> But what's got that to do with it? Strings are very mutable in C. > > I realized after posting that I'd said something incorrect again. The > concept of "mutability" itself is a high-level concept compared to C. > Memory allocation for strings is expensive because of the way ma

Re: in-place string reversal

2006-03-28 Thread Sion Arrowsmith
Sathyaish <[EMAIL PROTECTED]> wrote: >How would you reverse a string "in place" in python? > [ ... ] >Forget it! I got the answer to my own question. Strings are immutable, >*even* in python. I'm not sure what that "*even*" is about, but glad that "You can't, strings are immutable" is a satisfacto

Re: in-place string reversal

2006-03-28 Thread Sathyaish
>But what's got that to do with it? Strings are very mutable in C. I realized after posting that I'd said something incorrect again. The concept of "mutability" itself is a high-level concept compared to C. Memory allocation for strings is expensive because of the way malloc() works to find a "bes

Re: in-place string reversal

2006-03-28 Thread Martin P. Hellwig
Sathyaish wrote: > And that the "extra-memory" operation I've given above is expensive, I > believe. Is there an efficient way to do it? > If i recall correctly a string is an immutable list. I would do it this way: >>> strTXT = "foo" >>> strREV = strTXT[::-1] >>> strREV 'oof' -- mph -- http

Re: in-place string reversal

2006-03-28 Thread Jean-Paul Calderone
On 28 Mar 2006 06:08:51 -0800, Sathyaish <[EMAIL PROTECTED]> wrote: >How would you reverse a string "in place" in python? I am seeing that >there are a lot of operations around higher level data structures and >less emphasis on primitive data. I am a little lost and can't find my >way through seein

Re: in-place string reversal

2006-03-28 Thread Sybren Stuvel
Sathyaish enlightened us with: > How would you reverse a string "in place" in python? You wouldn't, since strings are immutable. > Forget it! I got the answer to my own question. Strings are > immutable, *even* in python. Indeed :) > Why not! The python compiler is written in C, right? Yup. Bu

Re: in-place string reversal

2006-03-28 Thread Sathyaish
And that the "extra-memory" operation I've given above is expensive, I believe. Is there an efficient way to do it? -- http://mail.python.org/mailman/listinfo/python-list

in-place string reversal

2006-03-28 Thread Sathyaish
How would you reverse a string "in place" in python? I am seeing that there are a lot of operations around higher level data structures and less emphasis on primitive data. I am a little lost and can't find my way through seeing a rev() or a reverse() or a strRev() function around a string object.