[Baypiggies] Pythonic way to iterate over two lists?

Max Slimmer max at theslimmers.net
Tue Jun 7 06:55:27 CEST 2011


A more realistic and in some ways interesting problem is to deal with
potentially more jobs than machines. I would think that you want all
the jobs to get done therefore any one machine might need to do more
than one job, Then for fun some machines are might be more efficient,
in either time or cost.  :-)

max



On Mon, Jun 6, 2011 at 9:32 PM, Casey Callendrello <c1 at caseyc.net> 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