I have one list of tuples:
`a = [(10, 11), (5, 5), (2, 3), (6, 7), (8, 3), (9, 2)]` and one simple list with values `b = [10, 9, 10, 2, 8, 3]`. Then I enumerate the second list and sort it for some purposes.

```
b_enumerated = list(enumerate(b))
# [(0, 10), (1, 9), (2, 10), (3, 2), (4, 8), (5, 3)]
b_sorted = sorted(b_enumerated, key=lambda x: x[1], reverse=True)
# [(0, 10), (2, 10), (1, 9), (4, 8), (5, 3), (3, 2)]

```

Now I want to rearrange my first list according to the second sorted list, so I expect to get `[(10, 11), (2, 3), (5, 5), (8, 3), (9, 2), (6, 7)]` (tuples of the original list in index order of the ordered list: 0, 2, 1, 4, 5, 3), where, for example, my enumerated first list is `[(0, (10, 11)), (1, (5, 5)), (2, (2, 3)), (3, (6, 7)), (4, (8, 3)), (5, (9, 2))]`.

How can I achieve the expected result? Maybe I need to use some sort of indexing, because sorting zipped lists didn't help.

Thanks.