【发布时间】:2023-04-03 08:50:02
【问题描述】:
我有一个接受 3 个不同输入的函数:
以下格式的天数:
"Day 2":Something,
"Day 1":Something,
"Day 3":Something,
"Day 5":Something,
"Day 4":Something
几周的字典:
"Week 2":Something,
"Week 1":Something,
"Week 4":Something,
"Week 3":Something,
"Week 5":Something
几个月的字典:
"April":Something,
"February":Something,
"March":Something,
"January":Something
因为它们是 dicts,所以它们是无序的。我正在操纵它们以有序的方式呈现给用户。
我正在寻找一种方法来拆分内置的 sorted() 以处理这三种类型。
输出应该是按数字(天/周)和月份排序的键:
"Day 1"
"Day 2"
"Day 3"
"Day 4"
"Day 5"
###
"Week 1"
"Week 2"
"Week 3"
"Week 4"
"Week 5"
###
"January"
"February"
"March"
"April"
我知道我可以使用三元运算:
sorted(input_dict, key=lambda x: int(x.strip("Day ")) if "Day 1" in input_dict else sorted(input_dict, key=lambda x: int(x.strip("Week ")) if "Week 1" in input_dict else sorted...
但它变得相当混乱。
我正在寻找如何使用已经定义的函数来实现关键函数。
类似:
def my_sort_function():
# magic goes here
for n in sorted(input_dict, key=my_function):
pass
【问题讨论】:
-
我在这里有点困惑......你能告诉我们一些实际的输入(3 个字典)和你正在寻找的输出吗?
-
字符串列表不是字典。不清楚你在问什么。
标签: python sorting dictionary built-in