Camions

Una empresa de transport vol distribuir la càrrega de determinats productes en els seus camions. Es disposa d’una llista de productes amb subllistes on cada subllista correspon a un producte i està formada per dos elements: el codi de producte (string) i la quantitat (enter).

Al mòdul camions (fitxer camions.py), dissenya la funció assigna_camio() que a partir d’una llista com l’esmentada, el codi d’un camió (string) i la quantitat que aquest pot transportar (enter), modifiqui aquesta llista de forma que les subllistes amb els productes assignats al camió tinguin un tercer element que sigui el codi del camió.

L’assignació dels productes al camió es fa seguint els criteris següents:

  • l’ordre d’assignació de productes és l’ordre en què apareixen a la llista,

  • un producte s’ha d’assignar completament, la quantitat corresponent no es pot partir, i

  • s’han d’assignar tants productes com hi càpiguen.

Per exemple:

>>> lprod = [['AB4', 100], ['GH6', 71], ['PK7', 65], ['LJ8', 78], ['TF', 14]]
>>> assigna_camio(lprod, 'C34', 250)
>>> lprod
[['AB4', 100, 'C34'], ['GH6', 71, 'C34'], ['PK7', 65, 'C34'], ['LJ8', 78], ['TF', 14, 'C34']]

En aquest cas, el producte 'LJ8' no es pot assignar al camió perquè la quantitat associada, 78, faria que se superés la capacitat del camió, 250. Però el producte 'TF' sí que es pot assignar perquè la quantitat associada, 14, sumada a la quantitat de productes assignats prèviament no supera la capacitat del camió.

Disposeu de més jocs de proves al fitxer tests-assigna-camio.txt.

Solució

Disposeu d’una solució al fitxer camions.py