Как отсортировать OrderedDict определенно существует в другом месте на сайте. Пример того, как это сделать:
foo = OrderedDict(sorted(ordered_dict.items(), key=lambda x: x[1][0]))
Для пояснения у меня есть OrderedDict of List, и поэтому это первая запись в списке ключей OrderedDict, по которой происходит сортировка. Я возвращаю отсортированную коллекцию как новый OrderedDict с именем foo. Отлично.
Но тогда мой вопрос вращается вокруг foo.items (). Если бы я должен был тогда сделать:
for idx, row in foo.items():
Значения, указанные в строке, возвращаются в отсортированном порядке, доказывая, что сортировка выше работает. Однако переменная idx находится в сумасшедшем случайном порядке и не коррелирует с позицией в новом OrderedDict, возможно, это позиция в старом OrderedDict, это то, что я предполагаю.
Итак, мой вопрос заключается в том, как получу ли я его так, чтобы строка возвращалась отсортированной (как сейчас) и idx увеличивается на 1 за раз в порядке возрастания?
ОБНОВЛЕНИЕ
foo = list(OrderedDict(sorted(ordered_dict.items(), key=lambda x: x[1][0])).values())
for idx in range(0, len(foo)):
row = foo[idx]
Это что-то вроде того, что я хочу сделать. Ключ не имеет значения из оригинальной диктовки для меня. Что мне нужно, так это элемент, отсортированный по первому значению в списке, содержащемся в значениях dict, а затем, чтобы иметь возможность сказать, какую позицию в списке занимает эта строка (для дальнейшего использования и не видна во фрагменте выше). Так что да, хотя ввод должен быть диктом, мне не нужен новый дикт, мне просто нужен список.