#python #dictionary
#python #словарь
Вопрос:
Я привязываю сортировку этого журнала по местоположению, сохраняя порядок поля времени. Я пытаюсь сделать это на python.
Это мой пример ввода:
- Чикаго 09:00:00
- Феникс 09:00:03
- Хьюстон 09:00:13
- Чикаго 09:00:59
- Хьюстон 09:01:10
- Чикаго 09:03:13
- Сиэтл 09:10:11
- Сиэтл 09:10:25
И это то, что я хотел бы, чтобы мой вывод был:
- Чикаго 09:00:00
- Чикаго 09:00:59
- Чикаго 09:03:13
- Хьюстон 09:00:13
- Хьюстон 09:01:10
- Феникс 09:00:03
- Сиэтл 09:10:11
- Сиэтл 09:10:25
Это то, что я сейчас делаю:
def read_file(file_name):
file = open(file_name, 'r')
lines = file.read().split()
file.close()
return lines
и это то, что это возвращает:
['Chicago', '09:00:00', 'Phoenix', '09:00:03', 'Houston', '09:00:13', 'Chicago', '09:00:59', 'Houston', '09:01:10', 'Chicago', '09:03:13', 'Seattle', '09:10:11', 'Seattle', '09:10:25']
Как бы мне создать справочник для местоположений и времени, чтобы затем отсортировать их с помощью алгоритма сортировки слиянием?
Кроме того, откройте для себя предложения, если справочник — не лучший способ.
Комментарии:
1. Добро пожаловать в SO! Поскольку извлечение текста очень чувствительно к формату, я рекомендую отображать ваши входные данные в виде монопространственного блока кода, защищенного обратными метками. Трудно сказать, какую строку мы действительно анализируем в противном случае. Сказав это, похоже, что вы можете просто прочитать файл в список и вызвать
sort
его (Python использует Timsort внутренне — не уверен, зачем вам нужна сортировка слиянием конкретно).
Ответ №1:
Насколько я вижу, желаемый результат — это просто отсортированные строки:
def read_file(file_name):
file = open(file_name, 'r')
lines = file.readlines()
file.close()
return sorted(lines)