作者:mobiledu2502863997 | 来源:互联网 | 2023-01-26 16:08
我有一本字典,每个项目都有不同的属性.
{ "Item1": { "Name" : "Tom", "Color" : "Blue", "Weight" = "10lb" }, "Item2": { "Name" : "Billy", "Weight" : "5lb" } }
问题是我想按Color排序,其中Item2的颜色为None,因为它未指定.所以排序会把颜色视为""
我可以遍历整个字典并添加Color : ""
到缺少属性的任何内容,但它是一个非常大的字典,它需要运行相对较快.
1> NPE..:
您可以使用dict.get('Color', default)
提供颜色的默认值.
如果d
是你的字典:
In [20]: sorted(d.keys(), key=lambda k:d[k].get('Color', ''))
Out[20]: ['Item2', 'Item1']
我想你可能会跳过`d.keys()`,只需使用`d`就足够了