Sorting a List by Corresponding Values from a Parallel List
In this scenario, you have two lists, X and Y, where each element in Y corresponds to a value associated with the element in X. Your goal is to sort list X based on the values in list Y.
One efficient approach to accomplish this is to use a list comprehension along with the zip() and sorted() functions:
[x for _, x in sorted(zip(Y, X))]
Let's break down this code snippet:
Example:
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"] Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1 ] result = [x for _, x in sorted(zip(Y, X))] print(result) # ['a', 'd', 'h', 'b', 'c', 'e', 'i', 'f', 'g']
This code will output the sorted list according to the corresponding values in list Y: ["a", "d", "h", "b", "c", "e", "i", "f", "g"].
The above is the detailed content of How Can I Sort One List Based on the Values of a Corresponding List?. For more information, please follow other related articles on the PHP Chinese website!