все! я застрял с такой проблемой: Я создал архивный список из двух разделенных списка, что я inputingКак найти элемент списка zipped, который имеет максимальное значение для разделения его парных элементов?
if __name__ == "__main__":
data = list(map(int, sys.stdin.read().split()))
n, capacity = data[0:2]
values = data[2:(2 * n + 2):2]
weights = data[3:(2 * n + 2):2]
ziplist = list(zip(values,weights))
opt_value = get_optimal_value(capacity, weights, values)
Итак, как я набрав
3 40
20 40
50 60
70 80
я получил такой список
[(20, 40), (50, 60), (70, 80)]
Теперь мне нужно понять, что элемент этого zip-списка имеет максимальное значение деления каждой пары.
m = list(x/y for x,y in ziplist)
И результат:
[0.5, 0.8333333333333334, 0.875]
Таким образом, очевидно, что мне нужно работать с последней парой. Но как я должен правильно его кодировать? Я хочу избежать использования дополнительного списка m. В общем, мне нужно найти индекс zipped list ->, а затем взять из этого элемента значение веса. Итак, мой конечный результат будет равен 80.
Кроме того, я думаю, что я мог пойти не так, потому что на самом деле, я пытаюсь решить проблему с дробным рюкзаком, поэтому я пытаюсь найти элемент с наилучшим соотношением от его веса и стоимости.
вы можете сделать 'max ([x/y для x, y в ziplist])' –
Как вы получили свое разделение целые числа для получения результатов поплавка? –
@ScottHunter Это поведение деления в Python 3 (оператор '//' будет генерировать целочисленные результаты). – larsks