Given two lists, X containing strings and Y containing integers, you aim to sort X according to the corresponding values in Y while preserving the original order of elements with the same "key" value. Explore the following optimized solution using Python's built-in functions:
[x for _, x in sorted(zip(Y, X))]
Example:
X = ["a", "b", "c", "d", "e", "f", "g", "h", "i"] Y = [ 0, 1, 1, 0, 1, 2, 2, 0, 1] Z = [x for _,x in sorted(zip(Y,X))] print(Z) # ["a", "d", "h", "b", "c", "e", "i", "f", "g"]
Explanation:
Further Explanation:
The sorted() function allows you to specify a key function that determines the sorting criteria. In this case, we use key=lambda pair: pair[0] to sort the tuples based on their first element. This effectively sorts X based on the corresponding values in Y.
The above is the detailed content of How to Sort a List of Strings Based on Corresponding Integer Values in Another List?. For more information, please follow other related articles on the PHP Chinese website!