我有两个数组:
dates=[datetime.date(2015, 1, 28), datetime.date(2016, 5, 10), datetime.date(2016, 3, 15), datetime.date(2018, 10, 28), datetime.date(2017, 7, 1), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29)]
prices=[100, 150, 25, 150, 300, 100, 100, 100, 100, 100]
我需要对日期进行排序,但这两个列表的索引需要链接;即,对于我对日期所做的每一次更改,我都必须考虑价格。
预期输出为
dates=[datetime.date(2015, 1, 28), datetime.date(2016, 5, 10), datetime.date(2016, 3, 15), datetime.date(2018, 10, 28), datetime.date(2017, 7, 1), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29), datetime.date(2018, 10, 29)]
prices=[100, 150, 25, 150, 300, 100, 100, 100, 100, 100]
我目前正在使用冒泡排序,但这对我的需求来说太慢了。
也许存储原始位置最简单:
new_dates=[]
indices=[]
for i, date in sorted(enumerate(dates), key = lambda x: x[1]):
new_dates.append(date)
indices.append(i)
new_prices=[]
for i, price in sorted(enumerate(prices), key = lambda x: indices.index(x[0]):
new_prices.append(price)