Проблема в том, что products
- это список, в который вы вставили другой список [product1, product2, product3, product4, product5]
.Затем вы сортируете этот внешний список (из одного элемента - внутреннего списка), который, конечно, остается прежним.
Вместо этого вы можете сделать products = [product1, product2, product3, product4, product5]
вместо products.append(...)
, и все должно работать какВы намерены.
Для очистки, почему все эти отдельные функции?Просто напишите одну get_product
функцию.
def get_product():
productname = input("What is the product? ")
productprice = input("What is the price? ")
return (productname, productprice)
Затем соберите 5 из них:
products = []
for _ in range(5): # this is an idiomatic way to run the code in the for loop 5 times
product = get_product()
products.append(product)
и сортируйте
products.sort(key=lambda t: t[1], reverse=True)