How to sort the Python list with an index
- tinyytopic.com
- 0
- on Feb 21, 2023
How to sort the Python list with an index using Ready-to-use function?
Ready-to-use Python function to sort the list with an index:
def sort_list_with_index(li1, idx):
# Sort a List with given index
tmp = li1[:] #clone list
# verify list and index size
if len(li1) != len(idx):
messagebox.showinfo('Message', "The sorting list and index size doesn't match!")
return
# sort list based on index number
for i in range(0, len(idx)):
tmp[i] = li1[idx[i]]
return tmp
Write your main code as a sample below,
print(sort_list_with_index(['Mon', 'Fri', 'Wed'], [0, 2, 1]))
The output of the code is,
['Mon', 'Wed', 'Fri']
How does the Python function work?
This function sorts a given list (li1) based on a specified order (idx) by creating a copy of the list and rearranging the elements in the copy according to the order specified by the index list.
This Python function, sort_list_with_index, takes two parameters: li1, which is a list to be sorted, and idx, which is a list of indices that specify the order in which li1 should be sorted. Here’s how it works:
- The function starts by creating a copy of the input list using the slice operator (
tmp = li1[:]). This is done to avoid modifying the original list while sorting it. - The function then checks if the length of the input list
li1is equal to the length of the index listidx. If they are not the same length, the function displays an error message and returnsNone. - If the length of
li1is equal to the length ofidx, the function proceeds to sortli1based on the order specified by the indices inidx. - To sort the list, the function uses a
forloop that iterates over the length ofidx. In each iteration, the function sets the value of thei-th element in the copy ofli1(tmp[i]) to the value of the element inli1at the index specified byidx[i]. - After the loop has finished iterating, the function returns the sorted list
tmp.