Python 合并排序1数组,每次更改都必须影响另一个列表

Python 合并排序1数组,每次更改都必须影响另一个列表,python,linked-list,mergesort,Python,Linked List,Mergesort,我有两个阵列: 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

我有两个阵列:

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]
我需要排序日期,但2个列表的索引需要链接;i、 e对于我对日期所做的每一次更改,我必须对价格进行更改

预期产量为

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)

dates,prices=zip(*排序(zip(dates,prices)))
我建议将这两个列表合并成一个列表。当您有相关数据时,它们应该在类或字典中。首先,这是一个很好的解决方案,我讨厌不知道它,但我真的需要一个合并排序算法来完成this@LukaBediashvili你是说你必须自己写合并排序吗?@SilverSlash是的,拼贴我会的,但我不知道如何进行这种排序