假设我有一本国王字典,名字中的罗马数字作为键,整数形式的罗马数字作为值。
d = {'Zemco III': 3, 'Usamec XL': 40, 'Usamec VII': 7, 'Robert VIII': 8, 'Usamec XLII': 42, 'Mary XXIV': 24, 'Robert III': 3, 'Robert XV': 15, 'Usamec XLIX': 49}
我想从最老到最年轻的顺序对列表进行排序,即 Usamec XLII 应该排在 Usamec XLIX 之前。我还想按字母顺序对列表进行排序,即 Usamec XLII 应该排在 Zemco III 之前。
我的方法是先按名称排序,然后按罗马数字值排序:
x = sorted(d.items(),key=operator.itemgetter(0))
y = sorted(x,key=operator.itemgetter(1))
但是,因为罗马数字是键的一部分,所以我的字母排序不能按预期工作。我的问题是,我可以按键的一部分对字典进行排序,例如,如果我的键是 Zemco III,我可以用 key.split()[0] 而不是整个键对我的项目进行排序吗?谢谢!