[Baypiggies] Pythonic way to iterate over two lists?

Casey Callendrello c1 at caseyc.net
Tue Jun 7 06:33:51 CEST 2011


I should add, I'm actually more interested in a list of (job, machine) 
tuples, since that's added to a queue and sent to a threadpool.

--Casey

On 6/6/11 9:32 PM, Casey Callendrello wrote:
> Hi there,
> I've got a simple problem that I've already solved effectively, but I 
> can't help thinking that there must be a more "pythonic" way to do it. 
> Especially because my solution uses a list index, which I *know* can't 
> possibly be the Python way ;-).
>
> In any case, I have two lists: one of machines, and one of jobs. 
> Either one can be of arbitrary length, including zero. I want to 
> generate (machine, job) pairs where every machine gets at most one 
> job, each job is only executed once, and as much work as possible is 
> done. The actual index or order is irrelevant.
>
> The simple, C-inspired solution is:
>
> i = 0
> while i<len(jobs) and i<len(machines):
>     do_job(jobs[i], machines[i])
>     i += 1
>
> There has to be a cleaner way than that! Any suggestions?
>
> --Casey
>
>
>
> _______________________________________________
> Baypiggies mailing list
> Baypiggies at python.org
> To change your subscription options or unsubscribe:
> http://mail.python.org/mailman/listinfo/baypiggies



More information about the Baypiggies mailing list