On Monday 9 Nov 2015 14:58 CET, Chris Angelico wrote: > On Tue, Nov 10, 2015 at 12:40 AM, Cecil Westerhof <ce...@decebal.nl> wrote: >> I was thinking about something like: >> values = (( 1, 100), ( 2, 100), ( 5, 100), >> 10, 100), (20, 100), (40, 100)) >> for value in values: >> do_stress_test('sqlite', ???) >> do_stress_test('postgres', ???) >> >> Is this possible? If so: what do I put at the place of the '???'? >> >> I could change the second and third parameter to a tuple as the >> second parameter, but I prefer three parameters if that would be >> possible. > > Easy! Just unpack the tuple. Two options: > > # Unpack in the loop > for count, size in values: > do_stress_test('sqlite', count, size) > do_stress_test('postgres', count, size) > > # Unpack in the function call > for value in values: > do_stress_test('sqlite', *value) > do_stress_test('postgres', *value) > > Either will work. For what you're doing here, I'd be inclined to the > first option, so you can give the values appropriate names (I'm > completely guessing here that they might be some sort of iteration > count and pool size; use names that make sense to your program); the > other option looks uglier in this particular instance, though it's a > more direct answer to your question. > > This is one of Python's best-kept secrets, I think. It's not easy to > stumble on it, but it's so handy once you know about it.
I remembered the second one, but did not know how it was done. That was why I asked about it. But the first option is even better. I now use: values = (( 1, 100), ( 2, 100), ( 5, 100), ( 10, 100), ( 20, 100), ( 40, 100), #( 80, 100), (160, 100), #(160, 200), (160, 400), (160, 800), ) for no_of_threads, no_of_records in values: do_stress_test('postgres', no_of_threads, no_of_records) do_stress_test('sqlite', no_of_threads, no_of_records) -- Cecil Westerhof Senior Software Engineer LinkedIn: http://www.linkedin.com/in/cecilwesterhof -- https://mail.python.org/mailman/listinfo/python-list