假设我有一本国王词典,名字中的罗马数字作为键,整数形式的罗马数字作为值。在
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,我可以用某种方式对我的条目进行排序吗键。拆分()[0]而不是整个密钥?谢谢!在
key
只是一个函数,它接收一个项并返回需要排序的内容。它可以是任何东西。在这将按
(name_without_rightmost_word, number)
键对项目进行排序:如果使用Python3,请使用
^{pr2}$key
:在
对于多单词名称,
key.rsplit(None, 1)[0]
比key.split()[0]
好。在要将其分类,可以执行以下操作:
排序后的内容将如下所示:
^{pr2}$最终排序的将正确格式化:
相关问题 更多 >
编程相关推荐