Как и в ответе @ Bazingaa, я рекомендую использовать для этой работы отображение (Python dict
).
Сначала вы можете создать отображение "Gem to price" следующим образом:
price_map = {} # This is an empty dict
for i in range(len(gems_list)):
price_map[gems_list[i]] = price_list[i]
Затем для каждого драгоценного камня, который хочет заказчик, вы можете проверить, есть ли он в наличии:
wanted = "Invalid"
has_gem = wanted in price_map
# ^^^^^^^^^^^^^^^^^^^
Вы сможете обработать исключение, что искомый драгоценный камень недействителензатем.
Вы можете получить цену с помощью словаря поиска:
wanted = "Ruby"
price = price_map[wanted] # this will fetch 3920
Если вы понимаете продвинутые методы, такие как списки, диктовки, распаковка значений и встроенные zip
, тогда это здорово, и вы сможете писать более короткие программы:
price_map = {gem: price for gem, price in zip(gems_list, price_list)}
А также, если вы понимаете обработку исключений в Python, вы можете использовать блок try ... except ...
для обработки кейсагде требуемый драгоценный камень недействителен, без необходимости предварительно проверять его.
try:
bill_amount += quantity * price_map[gem]
except KeyError:
# One of the gems isn't available
return -1
Если вам нужно прямое решение, просто прочитайте Bazingaa ответ .