I'm scraping a website for certain values like name, price, stock and rating and have been using the functions
my_products.sort(key = lambda x: x.return_name())
my_products.sort(key = lambda x: x.return_price())
my_products.sort(key = lambda x: x.return_rating())
my_products.sort(key = lambda x: x.return_stock())
to sort them. It all works fine and dandy, except it doesn't sort the price numerically, it lists them like 1000, 1500, 20, 200, 2000, 2500. Which isn't exactly what I'm looking for. How can I change this sorting behavior?
The class for each product:
class Product():
__title = ""
__price = ""
__rating =""
__stock = ""
def __init__(self,title, price, rating, stock):
self.__title = title
self.__price = price
self.__rating = rating
self.__stock = stock
def toString(self):
return "Title: {}\nPrice: {}\nRating: {}\nStock: {}\n".format( self.__title,
self.__price,
self.__rating,
self.__stock)
def return_price(self):
return self.__price
def return_name(self):
return self.__title
def return_rating(self):
return self.__rating
def return_stock(self):
return self.__stock