Сначала используйте правильную структуру данных - это:
("Gender =", gender, "|" ,"Athlete =", athlete, "|","Finish time", finishTime)
смешивает данные (значения gender
, athlete
и finishTime
) с материалами презентации и практически не используется. Либо просто сохраните значения, например:
datasets.append((gender, athlete, finishTime))
вы знаете, что для каждой "строки" в datasets
, row[0]
- это пол, row[1]
- это имя, а row[2]
- время.
row = datasets[0]
print("Gender : {}".format(row[0]))
или используйте диктовки, если хотите что-то более явное:
datasets.append(
{"gender": gender, "athlete": athlete, "finishTime": finishTime}
)
поэтому для каждой строки вы можете получить значения по ключу вместо индекса:
row = datasets[0]
print("Gender : {}".format(row["gender"]))
Тогда вы наверняка захотите сделать finsihTime
целым числом - input()
возвращает строку, а строка не сортируется так же, как целые числа:
>>> lst = ["15", "2", "21", "3"]
>>> sorted(lst)
['15', '2', '21', '3']
>>> lst2 = [15, 2, 31, 3]
>>> sorted(lst2)
[2, 3, 15, 31]
Тогда вам нужно только передать соответствующую функцию обратного вызова key
в sorted()
. Если вы используете кортежи:
>>> datasets
[('male', 'foo', 15), ('female', 'bar', 11)]
>>> sorted(datasets, key=lambda row: row[2])
[('female', 'bar', 11), ('male', 'foo', 15)]
Если вы используете дикты:
>>> datasets
[{'gender': 'male', 'athlete': 'foo', 'finishTime': 15}, {'gender': 'female', 'athlete': 'bar', 'finishTime': 11}]
>>> sorted(dataset, key=lambda row: row["finishTime"])
[{'gender': 'female', 'athlete': 'bar', 'finishTime': 11}, {'gender': 'male', 'athlete': 'foo', 'finishTime': 15}]