SCALES = ["o", "Ko", "Mo", "Go", "To", "Po"] def parse_size(size): size, scale = size.split(maxsplit=1) return SCALES.index(scale), 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)