I have a list dictionary of items:
ListDictItem = [ {'Item No': 1,'Weight':610,'Quantity':2},{'Item No':
2,'Weight':610,'Quantity':2},{'Item No': 3,'Weight':500,'Quantity':2},{'Item
No': 4,'Weight':484,'Quantity':2},{'Item No':
5,'Weight':470,'Quantity':2},{'Item No': 6,'Weight':440,'Quantity':2},{'Item
No': 7,'Weight':440,'Quantity':2},{'Item No': 8,'Weight':400,'Quantity':2}]
I would like to pack the items in shelves such that the total weight of each
shelf is less than a particular value.
I have created a list of weights from above like this:
ItemWeigths: [610.0, 610.0, 500.0, 484.0, 470.0, 440.0,440, 400.0]
and a code which creates the first shelf :
shelves=[]
ShelvesWeightTotal = sum(shelves)
shelf=[]
new=[]
ShelfToPack=[]
for i in range(0,len(ItemWeigths)):
while ShelvesWeightTotal <=WeightOfObject:
shelf += [ItemWeigths[i]]
ShelvesWeightTotal = sum(shelf)
for k in range(0,len(shelf)):
q1=ListDictItem[k]
q2 = ListDictItem.pop(k) #deletes the items that are packed.
shelves.append(q1)
new.append(q2)
ShelfToPack.append(shelves)
This code works but when I try to create other shelves, I made a while
statement over the items that are remaining ,(while ItemsRemaining !=0) and I
get an error for the code. The details are below:
Code:
while ListDictItem != []:
for i in range(0,len(ItemsToCutLength)):
while ShelvesLengthTotal <=LengthOfObject:
shelves += [ItemWeigths[i]]
ShelvesLengthTotal = sum(shelves)
for k in range(0,len(shelves)):
q1=ItemsToCut[k]
q2 = ListDictItemt.pop(k) #deletes the items that are packed.
shelf.append(q1)
new.append(q2)
ListDictItem==ListDictItem
ShelfToPack.append(shelf)
Error message:Traceback (most recent call last):
File "C:\Project\Python\ReadExcel-xlrd.py", line 201, in <module>
q1=ListDictItem[k]
IndexError: list index out of range.
I would like the ShelfToPack list look like :
[[{'Item No': 1,'Weight':610,'Quantity':2},{'Item No':
2,'Weight':610,'Quantity':2},{'Item No': 3,'Weight':500,'Quantity':2},{'Item
No': 4,'Weight':484,'Quantity':2}],[{..},...{..}],[{..},...{..}]]
Any suggestion in pointing the error or to improve the code will be appreciated.
Thanks in advance!!
Cheers!
GP
--
https://mail.python.org/mailman/listinfo/python-list