假设我们有一本字典:
m_dict = {'2011-04-01': {'asprin': (232, -7, -4, 1), 'glucose': (3, 4, -3)},
'2011-04-02': {'clb': (-7, -2, 8), 'humulin': (3, -6, -3), 'crack': (7,-5)},
'2011-04-03': {'otc': (-1, 34, -45), 'tussin': (-2, 8)} }
Run Code Online (Sandbox Code Playgroud)
我试图根据日期持有的药物数量按降序对这本词典进行排序,但如果两个日期的药物数量相同,则按升序对这些日期进行排序。因此,这种情况下的列表应该是: ['2011-04-02', '2011-04-01', '2011-04-03']。
我了解如何根据药物数量进行排序,但对如何在药物数量相同的情况下实现另一种排序条件感到困惑。
像这样的东西?我正在尝试使用理解组合在单个语句中完成它。但这不适用规则:如果两个日期的药物数量相同,则在 date_lst 中按升序对这两个日期进行排序。
date_lst = [key for key in sorted(m_dict.keys(), key = lambda item[key]): len(item[key]))
Run Code Online (Sandbox Code Playgroud)