There is a list like
l = [{"n": 1, "m": 3}, {"n": None, "m": 1}, {"n": 3, "m": None}, {"n": None, "m": 0}]
And I want to order it by one specified key, n
for example.
Besides, some value of the key may be None
, and I want to leave them at behind
Here's my trial
l = [{"n": 1, "m": 3}, {"n": None, "m": 1}, {"n": 3, "m": None}, {"n": None, "m": 0}]
from functools import partial
def order(key, item):
if item[key]:
return item[key]
else:
return 0
order_key = "n"
r = sorted(l, key=partial(order, order_key), reverse=True)
print(r)
Is there a better way to make it happen?