merge对1个数组进行排序,每次更改都必须影响另一个列表



我有两个数组:

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)

相关内容

  • 没有找到相关文章

最新更新