gpt4 book ai didi

python根据日期元素从1个列表中排序列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:03:48 25 4
gpt4 key购买 nike

我有 3 个列表。目前我正在使用 1 个列表对所有列表进行排序,如下所示:

sorted_lists = sorted(zip(new_date_list, flipkart_sale_list, paytm_sale_list), key=lambda x: x[0])
new_date_list, flipkart_sale_list, paytm_sale_list = [[x[i] for x in sorted_lists] for i in range(3)]

新的日期列表包含日期字符串作为元素,格式为 %b %d

new_date_list = ['Feb 01', 'Feb 02', 'Jan 04', 'Jan 05', 'Jan 06', 'Jan 07']
flipkart_sale_list = [5000,4000,3000,6000,1000,9000]
paytm_sale_list = [2200,2500,3500,5000,4000,1000]

但是上面的代码没有正确排序日期字符串。那么如何根据 new_date_lists 对所有列表进行排序?

另外两个列表包含数字。

预期结果:

new_date_list = ['Jan 04', 'Jan 05', 'Jan 06', 'Jan 07', 'Feb 01', 'Feb 02']
flipkart_sale_list = [3000,6000,1000,9000,5000,4000]
paytm_sale_list = [3500,5000,4000,1000,2200,2500]

最佳答案

在排序前转换为日期时间对象。尝试

sorted_lists = sorted(zip(new_date_list, flipkart_sale_list, paytm_sale_list), key=lambda x: datetime.datetime.strptime(x[0], "%b %d"))
new_date_list, flipkart_sale_list, paytm_sale_list = [[x[i] for x in sorted_lists] for i in range(3)]

结果:

>>> new_date_list
['Jan 04', 'Jan 05', 'Jan 06', 'Jan 07', 'Feb 01', 'Feb 02']
>>> flipkart_sale_list
[1000, 9000, 5000, 4000, 3000, 6000]
>>> paytm_sale_list
[4000, 1000, 2200, 2500, 3500, 5000]

正如@StefanPochmann 所建议的那样

new_date_list, flipkart_sale_list, paytm_sale_list = [[x[i] for x in sorted_lists] for i in range(3)]

也可以通过zip来完成

new_date_list, flipkart_sale_list, paytm_sale_list = map(list, zip(*sorted_lists))

关于python根据日期元素从1个列表中排序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35147063/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com