listOfDict=[{“sal”:1000,“age”:25},{“sal”:1000,“age”:24}, {“萨尔”:1000,“年龄”:26},{“萨尔”:2000,“年龄”:25},{“萨尔”:3000,“年龄”:24}]
预期o/p:[{“sal”:3000,“age”:24},{“sal”:2000,“age”:25},{“sal”:1000,“age”:24},{“sal”:1000,“age”:25},{“sal”:1000,“age”:26}]
我想按工资的降序和年龄的升序来排序
我试过这样的c++风格:
def auxsort(p1data, p2data):
if p1data['sal'] > p2data['sal']:
return True
if p1data['age'] <= p2data['age']:
return True
return False
sorted(listOfDict,key=auxsort)
但是python中不允许这样做。 TypeError:auxsort()正好接受2个参数(给定1个)
如何解决这个问题? 谢谢
你把钥匙用错了。它应该从
listOfDict
中获取一个元素,并返回一些可以直接相互比较的内容。我建议如下:它返回两个元素的元组。如果元组
t1 < t2
是,则表示它们对应的元素在排序后的输出中也具有这样的顺序相关问题 更多 >
编程相关推荐