I have a list of lists (can't be tuples since I have to generate it dynamically) and it is structured as a list of lists of one int and o开发者_如何转开发ne float Like so:
[[1,1.0345],[2,5.098],[3,4.89],[2,5.97]]
I want to get it sorted but I have only managed to get the built in sorting function to sort it by the first element of the lists or not do anything, but I need to sort them by the second element of the list and I don't want to implement my own sorting function. So an example of what I would want is:
[[1,1.0345],[3,4.89],[2,5.098],[2,5.97]]
Could someone tell me how to get one of the built in sorting functions to do this?
Pass the key
argument.
L.sort(key=operator.itemgetter(1))
>>> l = [[1,1.0345],[2,5.098],[3,4.89],[2,5.97]]
>>> l.sort(key=lambda x: x[1])
>>> l
[[1, 1.0345], [3, 4.8899999999999997], [2, 5.0979999999999999], [2, 5.9699999999999998]]
How about using they key parameter of sorted...
sorted_list = sorted([[1,1.0345],[3,4.89],[2,5.098],[2,5.97]], key=lambda x: x[1])
This tells python to sort the list of lists using the item at index 1 of each list as the key for the compare.
精彩评论