在列表列表的索引处找到最大数字的函数

时间:2018-10-08 19:58:48

标签: python list methods

我正在上一门在线python课程,我被其中一项任务困住了。

我有一个类似于以下列表的列表,其中包含一个字符串和一个int,该int代表重量,并且我的重量限制为10:

WeightLimit = 10
MyList = [['ItemOne','9'],['ItemTwo','4'],['ItemThree','7'],['ItemFour','2'], ,['ItemFive','1']]

我需要根据我的体重限制将这些物品移至新列表,并且每个新物品本质上都是交货。我需要先运送最重的物品。

因此从本质上讲,ItemOne将是我的第一个也是唯一的一次交货,因为我的限额现在是1(10-9)。由于无法再交付,我的限额现在重置为10。我的下一个交付商品将是ItemThree,ItemFour,ItemFive(7 + 2 + 1 = 10)。由于无法交付,我的限额重置为10。现在我的最终交货是ItemTwo。

我的输出将是:

newList = [['ItemOne'],['ItemThree', 'ItemFour', 'ItemFive'], ['ItemTwo']]

到目前为止,我有:

heaviest = 0
lightest = 10
name = ''
weightLimit = limit
outputList = []
loopList = []

for item in MyList:
    if int(item[1]) > heaviest:
        heaviest = int(item[1])
        name = item[0]
    elif int(item[1]) < lightest:
        lightest = int(item[1])

loopList.append(name)
weightLimit = weightLimit - heaviest

for item in myList:
    if name == item[0]:
        MyList.remove(item)

if lightest > weightLimit:
    weightLimit = 10
    outputList.append(loopList)
    loopList = []

因此,基本上可以遍历并找到最重的项目和最轻的项目。如果最轻的物品大于我的剩余限制,则所有设置都会重置,并将这些物品添加到输出列表中。

0 个答案:

没有答案