I have a list with dictionaries as below, I want to sort data based on 'd' as string in sorting order.
src_dict_list=[{'a':'a1','b':'b1','c':'c1','d':'1000-22'},
{'a':'a1','b':'b1','c':'c1','d':'1000-18'},
{'a':'a1','b':'b1','c':'c1','d':'1000-11144'},
{'a':'a1','b':'b1','c':'c1','d':'1000-11146'},
{'a':'a1','b':'b1','c':'c1','d':'1000-11149'},
{'a':'a1','b':'b1','c':'c1','d':'1000-11148'}]
here d values are considered as string so I tried with len but I want data to sorted as per numeric values as well.
Code:
print(sorted(src_dict_list,key=lambda k:len(k['d'])))
Output:
[{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-22'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-18'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11144'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11146'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11149'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11148'}]
Expected:
[{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-18'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-22'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11144'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11146'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11148'},
{'a': 'a1', 'b': 'b1', 'c': 'c1', 'd': '1000-11149'}]
can you please help me?