#python #python-3.x #list
#python #python-3.x #Список
Вопрос:
У меня есть два списка. Первый список описывает количество элементов в 1 полном наборе. Второй список содержит текущий инвентарь. Мой вопрос заключается в следующем: как я могу рассчитать, сколько возможных наборов может быть создано с текущим инвентарем?
a = [1, 1, 2] # This equals 1 complete set
b = [9, 12, 19] # This is the inventory
# output should be: sets = 9
Комментарии:
1.
"diamond earrings" * 2
делает не то, что вы думаете. Попробуйте распечатать список, чтобы увидеть, что вы получаете.2. Вы понимаете, что
["diamond necklace" * 9]
дает вам['diamond necklacediamond necklacediamond necklacediamond necklacediamond necklacediamond necklacediamond necklacediamond necklacediamond necklace']
, то есть один элемент с фразой, повторяющейся 9 раз, а не 9 элементов?3.Игнорируйте строку.
a = [1, 1, 2]
b = [9, 12, 19]
4. Будет ли это соответствовать вашему условию min(x // y для x, y в zip (b, a))
Ответ №1:
Вы можете взять минимальную сумму в инвентаре, разделенную на сумму, необходимую для набора каждого типа товара.
min(inventory // required for inventory, required in zip(b, a))
Комментарии:
1. Я поделился этим в комментарии.
Ответ №2:
Преобразуйте список в список кортежей, чтобы облегчить работу с
tuple_set = [("diamond necklace", 1), ("diamond ring", 1), ("diamond earrings", 2)]
tuple_inventory = [("diamond necklace", 9), ("diamond ring", 12), ("diamond earrings", 19)]
# put a big number
max_sets = 10000
for inventory in tuple_inventory:
for item in tuple_set:
if inventory[0] == item[0]:
possible_sets = int(inventory[1]/item[1])
if max_sets > possible_sets:
max_sets = possible_sets
break