Dictionaries and lambda functions
How to use lambda functions to sort, or apply functions to dictionaries
mydict={'a':4, 'bright':1, 'day':0, 'starts': 10, 'with':-2, 'kisses': 13}
mydict.items()
dict_items([('a', 4), ('bright', 1), ('day', 0), ('starts', 10), ('with', -2), ('kisses', 13)])
Sort using keys or its values
sorted(mydict.items(), key=lambda item : item[0])
[('a', 4),
('bright', 1),
('day', 0),
('kisses', 13),
('starts', 10),
('with', -2)]
sorted(mydict.items(), key=lambda item : item[1])
[('with', -2),
('day', 0),
('bright', 1),
('a', 4),
('starts', 10),
('kisses', 13)]
Apply other functions using lambdas
min(mydict.items(), key=lambda item : item[0])
('a', 4)
min(mydict.items(), key=lambda item : item[1])
('with', -2)
max(mydict.items(), key=lambda item : item[0])
('with', -2)
we can also apply multiple conditions
sorted(mydict.items(), key=lambda item : (item[1]))
[('with', -2),
('day', 0),
('bright', 1),
('a', 4),
('starts', 10),
('kisses', 13)]
l = sorted(mydict.items(), key=lambda item : (item[1], len(item[0])))
mynewdict = {k:v for k, v in l}
mynewdict
{'with': -2, 'day': 0, 'bright': 1, 'a': 4, 'starts': 10, 'kisses': 13}