按不一致变量排序python字典

按不一致变量排序python字典,python,sorting,dictionary,Python,Sorting,Dictionary,我有一本字典,每一项都有不同的属性 { "Item1": { "Name" : "Tom", "Color" : "Blue", "Weight" = "10lb" }, "Item2": { "Name" : "Billy", "Weight" : "5lb" } } 问题是我想按颜色排序,其中Item2的颜色将是None,因为它没有指定。因此,这类人会将颜色视为 我可以在整个字典中循环并为缺少属性的任何内容添加颜色:但它是一个非常大的字典,需要相对快速地运行。您可以使用dict.get'C

我有一本字典,每一项都有不同的属性

{ "Item1": { "Name" : "Tom", "Color" : "Blue", "Weight" = "10lb" }, "Item2": { "Name" : "Billy", "Weight" : "5lb" } }
问题是我想按颜色排序,其中Item2的颜色将是None,因为它没有指定。因此,这类人会将颜色视为

我可以在整个字典中循环并为缺少属性的任何内容添加颜色:但它是一个非常大的字典,需要相对快速地运行。

您可以使用dict.get'Color',default为颜色提供默认值

如果d是你的字典:

In [20]: sorted(d.keys(), key=lambda k:d[k].get('Color', ''))
Out[20]: ['Item2', 'Item1']

到目前为止你试过什么?显示您的代码。您在排序时提供lambda函数,以便处理None情况。此外,jobHint的数据结构似乎是错误的:dict.get方法有一个可选的默认参数。请求内容时使用.getkey,默认值。因此,不要简单地使用dict[Item1][Color],而是使用dict[Item1].getColor,default=。我认为您可能会跳过d.keys,仅使用d就足够了requirement@MoinuddinQuadri我相信你是对的。它似乎工作正常,你是我的英雄。非常感谢。我不知道你可以通过默认设置来获得。这里是Python新手。是的,只有d就足够了