这是“argsort”。我会按照你所说的“传统方式”来做,这是值得的。日期字符串将使用字典顺序正确排序,假设它们都在
%Y-%m%-%d
格式。
>>> null = None
>>> mylist = [
... {
... 'date': '2018-07-02',
... 'sequence': null
... },
...
... {
... 'date': '2015-01-03',
... 'sequence': null
... },
... {
... 'date': '2017-05-12',
... 'sequence': null
... },
... ]
>>> from operator import itemgetter
>>> for i, d in enumerate(sorted(mylist, key=itemgetter('date')), start=1):
... d['sequence'] = i # mutate dicts in place
...
>>> mylist
[{'date': '2018-07-02', 'sequence': 3},
{'date': '2015-01-03', 'sequence': 1},
{'date': '2017-05-12', 'sequence': 2}]
numpy.argsort
如果你有大量的数据,性能是关键的,可能会给你一个加速,但不要担心其他。