SCALES = ["o", "Ko", "Mo", "Go", "To", "Po"]
def parse_size(size):
size, scale = size.split(maxsplit=1)
return SCALES.index(scale), float(size)
rows_from_sqlite = [
("sister_nancy.mp3", "2 Mo"),
("sister_nancy.mp4", "600 Mo"),
("titles.txt", "7 Ko"),
("backup.tar.bz2", "4 Go"),
]
for row in sorted(rows_from_sqlite, key=lambda row: parse_size(row[1])):
print(row)