I don't understand the lambda k function, and especially, what is the last [k] in this line of code?
sorting_permutation = sorted(range(len(prediction_test[0:m_test])), key=lambda k: prediction_test[0:m_test][k])
I am so sorry for my English.
We should analyse the whole function. You want to sort range(len(prediction_test[0:m_test]))
. Assuming m_test
isn't greater than len(prediction_test)
, this should give a list containing numbers from 0
to m_test-1
.
Key parameter of sorting function defines the function that the list is accordingly sorted. k
values are the elements of the list that you want to sort. In your code, k
will take values 0,1,2...,m_test-1
under the assumption. With prediction_test[0:m_test][k]
you first take a slice of prediction_test from index 0
to index m_test
, then you take the element at k
th index.
In a nutshell,
key=lambda k: prediction_test[0:m_test][k]
means that you will sort your list according to results of prediction_test[0:m_test][k]
where k will take values of your elements in the list. Your code is probably used for sorting the indices of a list according to values that they store.