Как извлекать элементы из файла

#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)