def insertion_sort(arr):
for i in range(1,len(arr)):
key = arr[i]
k = arr[i][0].split()[-1] # split() function is splitting the names using spaces and then [-1] is used to capture the last name
j = i-1
while j >= 0 and k < arr[j][0].split()[-1]:
arr[j+1] = arr[j]
j -= 1
arr[j+1] = key
return arr
L = [("Wilhelm Conrad R'ontgen", "Physics", 1901), ("Ronald Ross", "Medicine", 1902),
("Marie Curie", "Physics", 1903), ("Ivan Pavlov", "Medicine", 1904),
("Henryk Sienkiewicz", "Literature", 1905), ("Theodore Roosevelt", "Peace", 1906)]
print(insertion_sort(L))
# Output
[('Marie Curie', 'Physics', 1903), ('Ivan Pavlov', 'Medicine', 1904), ("Wilhelm Conrad R'ontgen", 'Physics', 1901), ('Theodore Roosevelt', 'Peace', 1906), ('Ronald Ross', 'Medicine', 1902), ('Henryk Sienkiewicz', 'Literature', 1905)]