**Environment: Python 3.8**

**Key technique: zip, sorted**

You are given an array of strings `names`

, and an array `heights`

that consists of **distinct** positive integers. Both arrays are of length `n`

.

For each index `i`

, `names[i]`

and `heights[i]`

denote the name and height of the `ith`

person.

Return `names`

* sorted in **descending** order by the people's heights*.

**Example 1:**

`Input: names = ["Mary","John","Emma"], heights = [180,165,170]`

Output: ["Mary","Emma","John"]

Explanation: Mary is the tallest, followed by Emma and John.

**Analysis:**

- Use zip as pair [(180, ‘Mary’), (170, ‘Emma’), (165, ‘John’)].
- sorted it by using reverse type.

**Solution:**

`class Solution:`

def sortPeople(self, names, heights):

sort_h=sorted(list(zip(heights,names)),reverse=True)

ans=[]

for i in range(len(sort_h)):

ans.append(sort_h[i][1])

return ans

**Submissions:**