# Python | Finding relative order of elements in list

Sometimes we have an unsorted list an we wish to find the actual position the elements could be when they would be sorted, i.e we wish to construct the list which could give the position to each element destined if the list was sorted. This has a good application in web development and competitive programming domain. Let’s discuss certain ways in which this can be done.

Method #1 : Using `sorted() + index()` + list comprehension
All the above function can combine to achieve this particular task. The sorted function returns the sorted order and the indexing is done by the index function. List comprehension does the task of doing for whole list elements and integrating both tasks.

 `# Python3 code to demonstrate ` `# Finding relative order of elements in list ` `# using sorted() + index() + list comprehension ` ` `  `# initializing list ` `test_list ``=` `[``6``, ``3``, ``1``, ``2``, ``5``, ``4``] ` ` `  `# printing original list ` `print``(``"The original list is : "` `+` `str``(test_list)) ` ` `  `# using sorted() + index() + list comprehension ` `# Finding relative order of elements in list ` `temp ``=` `sorted``(test_list)     ` `res ``=` `[temp.index(i) ``for` `i ``in` `test_list] ` ` `  `# printing result ` `print` `(``"The relative ordering list is : "` `+` `str``(res)) `

Output :

```The original list is : [6, 3, 1, 2, 5, 4]
The relative ordering list is : [5, 2, 0, 1, 4, 3]
```

Method #2 : Using `map() + enumerate()` + dictionary comprehension + `sorted()`
The dictionary comprehension is used in place of list comprehension and the sorted list is formed and the index of actual ordering in sorted list are traversed using enumerate to have key-value pair and then are get by map for all the indices in list.

 `# Python3 code to demonstrate ` `# Finding relative order of elements in list ` `# using map() + enumerate() + dictionary comprehension + sorted() ` ` `  `# initializing list ` `test_list ``=` `[``6``, ``3``, ``1``, ``2``, ``5``, ``4``] ` ` `  `# printing original list ` `print``(``"The original list is : "` `+` `str``(test_list)) ` ` `  `# using map() + enumerate() + dictionary comprehension + sorted() ` `# Finding relative order of elements in list ` `temp ``=` `{val: key ``for` `key, val ``in` `enumerate``(``sorted``(test_list))} ` `res ``=` `list``(``map``(temp.get, test_list)) ` ` `  `# printing result ` `print` `(``"The relative ordering list is : "` `+` `str``(res)) `

Output :

```The original list is : [6, 3, 1, 2, 5, 4]
The relative ordering list is : [5, 2, 0, 1, 4, 3]
```

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.

Article Tags :

Be the First to upvote.

Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.