Or a dataclass.
https://docs.python.org/3/library/dataclasses.html
from dataclasses import dataclass
@dataclass(order=True)
class Computer:
name: str
memory: float
processor: str
cost: float
computers = [
Computer("Kindle Fire", 16, "2.2", 199),
Computer("Samsung Galaxy", 8, "1.2", 114.99),
Computer("Dell Streak", 16, "1.8", 59.99),
Computer("Apple IPad", 64, "2.65", 319),
Computer("Lenovo Tab", 32, "2.3", 129),
]
print("Computers", *sorted(computers), sep="\n")
print("\nBy price", *sorted(computers, key=lambda x: x.cost), sep="\n")
print("\nBy memory", *sorted(computers, key=lambda x: x.memory), sep="\n")
print("\nLess than $150", *(c for c in computers if c.cost < 150), sep="\n")
Output:
Computers
Computer(name='Apple IPad', memory=64, processor='2.65', cost=319)
Computer(name='Dell Streak', memory=16, processor='1.8', cost=59.99)
Computer(name='Kendle Fire', memory=16, processor='2.2', cost=199)
Computer(name='Lenovo Tab', memory=32, processor='2.3', cost=129)
Computer(name='Samsung Galaxy', memory=8, processor='1.2', cost=114.99)
By price
Computer(name='Dell Streak', memory=16, processor='1.8', cost=59.99)
Computer(name='Samsung Galaxy', memory=8, processor='1.2', cost=114.99)
Computer(name='Lenovo Tab', memory=32, processor='2.3', cost=129)
Computer(name='Kendle Fire', memory=16, processor='2.2', cost=199)
Computer(name='Apple IPad', memory=64, processor='2.65', cost=319)
By memory
Computer(name='Samsung Galaxy', memory=8, processor='1.2', cost=114.99)
Computer(name='Kendle Fire', memory=16, processor='2.2', cost=199)
Computer(name='Dell Streak', memory=16, processor='1.8', cost=59.99)
Computer(name='Lenovo Tab', memory=32, processor='2.3', cost=129)
Computer(name='Apple IPad', memory=64, processor='2.65', cost=319)
Less than $150
Computer(name='Samsung Galaxy', memory=8, processor='1.2', cost=114.99)
Computer(name='Dell Streak', memory=16, processor='1.8', cost=59.99)
Computer(name='Lenovo Tab', memory=32, processor='2.3', cost=129)