Files
30-seconds-of-code/snippets/sort_by_indexes.md
2020-09-07 09:58:39 +03:00

620 B

title, tags
title tags
sort_by_indexes list,sort,intermediate

Sorts one list based on another list containing the desired indexes.

Use zip() and sorted() to combine and sort the two lists, based on the values of indexes. Use a list comprehension to get the first element of each pair from the result.

def sort_by_indexes(lst, indexes):
  return [val for _, val in sorted(zip(indexes, lst), key = lambda x: x[0])]
a = ['eggs', 'bread', 'oranges', 'jam', 'apples', 'milk']
b = [3, 2, 6, 4, 1, 5]
sort_by_indexes(a, b) # ['apples', 'bread', 'eggs', 'jam', 'milk', 'oranges']