Я заполняю namedtuple следующим кодом, однако я смог бы сначала добавить значения с более высоким отношением в порядке убывания. Я пытался определить максимум в дальнейшем для LOP, но не работает.
Item = namedtuple("Item", ['index', 'value', 'weight', 'ratio'])
input_data_file =open(r"filepath", 'r')
input_data = input_data_file.read()
lines = input_data.split('\n')
firstLine = lines[0].split()
item_count = int(firstLine[0])
capacity = int(firstLine[1])
items = []
for i in range(1, item_count+1):
line = lines[i]
parts = line.split()
ratio = int(parts[0])/int(parts[1])
#max(items, key=lambda x: x[3])
items.append(Item(i-1, int(parts[0]), int(parts[1]), float(str(ratio))))