я словарь по имени «времена», которая отображает ключи строковые значения, которые представляют время:Как отсортировать словарь по значению, переданному через функцию?
times = {'key1': '12.23', 'key2': '43:53.29', 'key3': '1:38:11.50r'}
Строка принимает форму [часы]: [мин.]: [Секунды] [миллисекунды] [ r] , где каждое поле является необязательным. R - это флаг, который не зависит от каких-либо других значений, заполняемых и не учитывающих сортировку. [часы] требует наличия [минут] и «вниз», но [минут] не требует [часов] для присутствия.
Я хочу привести список ключей, отсортированных по времени их значений.
У меня есть следующие:
standings = sorted(times, key=times.__getitem__)
, но это только сорта на основе значения строки. Я новичок в python, но если бы я использовал java, я бы, вероятно, написал класс Time с пользовательской функцией compareTo(), чтобы заставить сортировку работать.
Я мог бы написать функцию, которая преобразует строку в определенное время в миллисекундах, а затем сортировать на ней, но не знаю, как это сделать, используя 'key =' в функции sorted().
Что такое '' 50r' в '1: 38: 11.50r''? – thefourtheye
полсекунды, в реле (это время гонки).«R» - это просто флаг, который не означает ничего для сортировки – PearSquirrel