xxxxxxxxxx
arr = [
{
'id' : 1,
'name' : 'Name 1'
},
{
'id' : 4,
'name' : 'Name 4'
},
{
'id' : 2,
'name' : 'Name 2'
},
{
'id' : 3,
'name' : 'Name 3'
}
]
sorted_array = list(sorted(arr,key=lambda x:x['id']))
xxxxxxxxxx
>>> student_tuples = [
'john', 'A', 15), (
'jane', 'B', 12), (
'dave', 'B', 10), (
]
>>> sorted(student_tuples, key=lambda student: student[2])
# sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
xxxxxxxxxx
# sort list by key
st1 = [ [ 1, 2], [3, 4], [4, 2], [ -1, 3], [ 4, 5], [2, 3]]
st1.sort()
print(st1) # sort by 1st element [ [ -1, 3 ], [ 1, 2 ], [ 2, 3 ] ...
st1.sort(reverse=True)
print(st1) # sort decending [ [ 4, 5 ], [ 3, 4], [ 2, 3 ] ...
st1.sort(key=lambda x: x[1]) # sort by 2nd element accending
print(st1) # [ [ 1, 2 ], [ 4, 2 ], [ -1, 3 ] ...
st1.sort(key=lambda x: x[0] + x[1]) # sort by sum of 1st and 2nd element accending
print(st1) # [ [ -1, 3 ], [ 1, 2 ], [ 2, 3 ] ...
# lambda undefined function
def sort_func(x) : # classic way
return x[0] + x[1]
st1.sort(key=sort_func)
st1.sort(key=lambda x: x[0] + x[1]) # defined function lambda at place
xxxxxxxxxx
# sort list by key
st1 = [ [ 1, 2], [3, 4], [4, 2], [ -1, 3], [ 4, 5], [2, 3]]
st1.sort()
print(st1) # sort by 1st element [ [ -1, 3 ], [ 1, 2 ], [ 2, 3 ] ...
st1.sort(reverse=True)
print(st1) # sort decending [ [ 4, 5 ], [ 3, 4], [ 2, 3 ] ...
st1.sort(key=lambda x: x[1]) # sort by 2nd element accending
print(st1) # [ [ 1, 2 ], [ 4, 2 ], [ -1, 3 ] ...
st1.sort(key=lambda x: x[0] + x[1]) # sort by sum of 1st and 2nd element accending
print(st1) # [ [ -1, 3 ], [ 1, 2 ], [ 2, 3 ] ...
# lambda undefined function
def sort_func(x) : # classic way
return x[0] + x[1]
st1.sort(key=sort_func)
st1.sort(key=lambda x: x[0] + x[1]) # defined function lambda at place
xxxxxxxxxx
>>> sorted(student_tuples, key=itemgetter(2))
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
xxxxxxxxxx
>>> student_objects = [
Student('john', 'A', 15),
Student('jane', 'B', 12),
Student('dave', 'B', 10),
]
>>> sorted(student_objects, key=lambda student: student.age) # sort by age
[('dave', 'B', 10), ('jane', 'B', 12), ('john', 'A', 15)]
xxxxxxxxxx
>>> class Student:
def __init__(self, name, grade, age):
self.name = name
self.grade = grade
self.age = age
def __repr__(self):
return repr((self.name, self.grade, self.age))