gpt4 book ai didi

python - 使用列表中包含的特定字符串对一个列表进行排序

转载 作者:行者123 更新时间:2023-11-28 20:21:29 25 4
gpt4 key购买 nike

我必须根据月份名称对我的字符串列表进行排序:

my_list = ['apple_april', 'banana_july', 'carrot_december', 'dog_january']

我必须按一月、二月、三月排序,......

我的试用:

months = [m.split('_')[1] for m in my_list]

ans = [x for (y,x) in sorted(zip(months,my_list))]

但是没有成功,你会怎么做呢?

预期的答案是:

['dog_january', 'apple_april', 'banana_july', 'carrot_december']

最佳答案

list.sort , sorted接受可选的 key 参数。将返回相应数字的关键函数传递给 monthes。

>>> import calendar
>>>
>>> months = {calendar.month_name[i].lower(): i for i in range(1, 12+1)}
>>> my_list = ['apple_april', 'banana_july', 'carrot_december', 'dog_january']
>>> sorted(my_list, key=lambda x: months[x.split('_')[1]])
['dog_january', 'apple_april', 'banana_july', 'carrot_december']

months 使用 calendar.month_name 在月份名称和数字之间进行映射:

>>> months
{'april': 4, 'november': 11, 'june': 6, 'august': 8, 'december': 12, 'october': 10,
'july': 7, 'march': 3, 'september':9, 'may': 5, 'january': 1, 'february': 2}

关于python - 使用列表中包含的特定字符串对一个列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27588432/

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