[Baypiggies] Pythonic way to iterate over two lists?

Casey Callendrello c1 at caseyc.net
Tue Jun 7 06:32:21 CEST 2011


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





More information about the Baypiggies mailing list