Я хочу иметь возможность сортировать список объектов (скажем, словари на данный момент), но вместо того, чтобы переупорядочивать их расположение в списке, я хотел бы установить для каждого свойства целое значение, которое представляет это место в последовательности.
Например, предположим, у меня есть такой список:
mylist = [
{
'date': '2018-07-02',
'sequence': null
},
{
'date': '2015-01-03',
'sequence': null
},
{
'date': '2017-05-12',
'sequence': null
},
...
]
Я бы хотел иметь функцию, которая выглядит следующим образом:
assign_sequence(my_list, key='date', sequence_property='sequence')
И вывести его:
[
{
'date': '2018-07-02',
'sequence': 3
},
{
'date': '2015-01-03',
'sequence': 1
},
{
'date': '2017-05-12',
'sequence': 2
},
...
]
Причина в том, что в конечном итоге данные предназначены для устаревшей системы, которая ожидает порядковый номер и не может работать без него.
Конечно, я могу просто отсортировать их традиционным способом, а затем повторить их снова с помощью enumerate () и назначить индекс. Но мне было просто интересно, есть ли более эффективный или более элегантный способ.