More efficient code, but slower program

Cecil Westerhof Cecil at decebal.nl
Wed Jul 27 13:33:07 EDT 2022


2QdxY4RzWzUUiLuE at potatochowder.com writes:

> On 2022-07-27 at 17:48:47 +0200,
> Regarding "Re: More efficient code, but slower program,"
> Cecil Westerhof via Python-list <python-list at python.org> wrote:
>
>> ram at zedat.fu-berlin.de (Stefan Ram) writes:
>> 
>> > Cecil Westerhof <Cecil at decebal.nl> writes:
>> >>values = [*range(100)]
>> >
>> >   In many cases, any iterable is just fine and a list is not
>> >   required, just as peudo-random numbers often are just fine and
>> >   real-world entropy is not required.
>> 
>> In this case both are. I must select (several times) a random element
>> from the list. So I need the list.
>> I also want the randomness to be as good as possible to make the
>> 'simulation' as good as possible.
>
> "[A]s good as possible" for simulations and tests may not require the
> cryptographic quality numbers from SystemRandom.  Many/most pseudo
> random number generators are optimized for statistically normalized
> outputs, and are repeatable as a bonus (again, often a requirement for
> certain types of simulations; YMMV).
>
> Also, what if you shuffled the list first (e.g., with random.shuffle)
> and then iterated through it directly?  Repeatedly removing arbitrary
> elements from the middle of a list is potentially expensive.

Someone else also mentioned that. I think I should put it on my list
of things to do/try.

-- 
Cecil Westerhof
Senior Software Engineer
LinkedIn: http://www.linkedin.com/in/cecilwesterhof


More information about the Python-list mailing list