Obs: я знаю, что списки в python не являются фиксированными по порядку, но думаю, что этот будет.И я использую Python 2.4
У меня есть список, например (например) этот:
mylist = [ ( u'Article', {"...some_data..."} ) ,
( u'Report' , {"...some_data..."} ) ,
( u'Book' , {"...another_data..."} ) ,
...#continue
]
Эта переменная mylist получена из функции, а 'order' извозвращаемый список будет отличаться.Так что иногда это будет похоже на пример.Иногда, «Отчет» будет стоять перед «Статьей» и т. Д.
У меня есть фиксированный порядок, который я хочу в этом списке (и не в алфавитном порядке).мой фиксированный порядок: «Отчет», «Статья», «Книга», ...
Итак, я хочу, чтобы: каков бы ни был создан экземпляр «Мой список», я хочу изменить его порядок создания »Отчет«останься впереди», «статья» на втором и т.д.
Ответ :
Я закончил с этим:
mylist стал списком диктов, например:
mylist = [{'id':'Article', "...some_data..."} ,
...etc
]
у каждого диктанта есть «id», который должен быть отсортирован.
Сохранение правильного порядка в списке. Назначение правильного порядка в списке:
correct_order = ['Report', 'Article', 'Book', ...]
и выполнение:
results = sorted([item for item in results], cmp=lambda x,y:cmp(correct_order.index(x['id']), correct_order.index(y['id'])))