小编M.C*_*Cow的帖子

如何基于两个条件在嵌套字典中创建键列表?

假设我们有一本字典:

 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)

python sorting dictionary nested list-comprehension

2
推荐指数
1
解决办法
73
查看次数

标签 统计

dictionary ×1

list-comprehension ×1

nested ×1

python ×1

sorting ×1