通过不一致的变量对python字典进行排序

时间:2017-08-04 19:16:41

标签: python sorting dictionary

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

{ "Item1": { "Name" : "Tom", "Color" : "Blue", "Weight" = "10lb" }, "Item2": { "Name" : "Billy", "Weight" : "5lb" } }

问题是我想按Color排序,其中Item2的颜色为None,因为未指定。因此,排序会将颜色视为""

我可以遍历整个字典并将Color : ""添加到缺少属性的任何内容中,但它是一个非常大的字典,它需要相对较快地运行。

1 个答案:

答案 0 :(得分:6)

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

如果d是您的字典:

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