у меня есть список 760 файлов, из которого я извлечения 2 строки данных, которые затем хранятся в словаре:Python3: сортировка списка словарных ключей
output = {'file number':data, '1':somedatain1, '2':somedatain2, ... '760':somedatain760}
нотабене Номера являются строками, потому что они были получены путем создания os.listdir ('.'), Чтобы получить список имен файлов и разделить строку вниз. [Я мог преобразовать это в целое число (using int()
), если это необходимо]
Словарь затем распечатан путем создания списка ключей и итерации:
keys = output.keys()
for x in keys:
print(x, '\t', output[x])
Однако выход в случайном порядке [из-за неупорядоченного характера словаря, который, я считаю, является неотъемлемым свойством - хотя я не знаю, почему это так), и было бы гораздо удобнее, если бы результат был в порядке чисел в соответствии с номером файла. Это, затем подбрасывает вопрос:
Учитывая, что мой список ключей либо
1. keys = ['filename', '2', '555', '764' ... '10']
или, если я изменить строку номер файла в целое число:
2. keys = ['filename', 2, 555, 764 ... 10]
как сортировать мой список ключей в соответствии т o числовое значение номера файла, если оно является строкой (как показано в пункте 1 выше), или если оно относится к типам смешанных объектов (т. 1 строка и 760 целых чисел, как показано выше в 2)?
Сначала вы должны определить, как вы хотите, сравнение ' 'имя файла' <2' работать. – roippi
О порядке упорядочения словаря: [Почему порядок в словарях Python произволен?] (Http://stackoverflow.com/q/15479928) –