How smart is the Python interpreter?
Diez B. Roggisch
deets at nospam.web.de
Thu Jul 31 07:57:28 EDT 2008
ssecorp wrote:
> def str_sort(string):
> s = ""
> for a in sorted(string):
> s+=a
> return s
>
>
> if i instead do:
>
> def str_sort(string):
> s = ""
> so = sorted(string)
> for a in so:
> s+=a
> return s
>
>
> will that be faster or the interpreter can figure out that it only has
> to do sorted(string) once? or that kind of cleverness is usually
> reserved for compilers and not interpreters?
There isn't much cleverness involved here - why on earth should one execute
the sorted(string) several times?
The
for <name> in <iterable_yielding_expression>
construct will evaluate the <iterable_yielding_expression> of course only
once.
Diez
More information about the Python-list
mailing list