Multi-Field Sorting in Python Lists
In Python, sorting a list by a single field is straightforward using the sorted() function and the key parameter. However, what if you need to sort by multiple fields?
To sort a list by two fields, you can utilize the power of lambda functions. Here's how to do it:
list1 = sorted(csv1, key=operator.itemgetter(1))
This code sorts the list by the value in field 1. To sort by the value in field 1 and then by the value in field 2, use a lambda function:
sorted_list = sorted(list1, key=lambda x: (x[0], x[1]))
This lambda function creates a tuple containing the values in field 1 and field 2 for each element in the list. The sorted() function then sorts the list by the first element of the tuple (field 1) and then by the second element (field 2).
Alternatively, you can sort by one field ascending and another descending:
sorted_list = sorted(list1, key=lambda x: (x[0], -x[1]))
This code sorts by the value in field 1 ascending and the value in field 2 descending.
No need to import any additional modules when using lambda functions. This method provides a flexible and efficient way to sort Python lists by multiple fields based on your specific requirements.
The above is the detailed content of How to Sort Python Lists by Multiple Fields?. For more information, please follow other related articles on the PHP Chinese website!