Computer >> Máy Tính >  >> Lập trình >> Python

Tìm thứ tự tương đối của các phần tử trong danh sách bằng Python

Chúng tôi được cung cấp một danh sách có các phần tử là số nguyên. Chúng tôi được yêu cầu tìm thứ tự tương đối có nghĩa là nếu chúng được sắp xếp theo thứ tự tăng dần thì chúng tôi cần tìm chỉ mục của vị trí của chúng.

Với được sắp xếp và lập chỉ mục

Trước tiên, chúng tôi sắp xếp toàn bộ danh sách và sau đó tìm ra chỉ mục của từng danh sách sau khi sắp xếp.

Ví dụ

listA = [78, 14, 0, 11]
# printing original list
print("Given list is : \n",listA)
# using sorted() and index()
res = [sorted(listA).index(i) for i in listA]
# printing result
print("list with relative ordering of elements : \n",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list is :
[78, 14, 0, 11]
list with relative ordering of elements :
[3, 2, 0, 1]

Với liệt kê và sắp xếp

Với chức năng liệt kê và sắp xếp, chúng ta truy xuất từng phần tử và sau đó tạo một vùng chứa từ điển chứa chức năng liệt kê và sắp xếp. Chúng tôi lấy từng phần tử thông qua vùng chứa này bằng cách sử dụng chức năng bản đồ.

Ví dụ

listA = [78, 14, 0, 11]
# printing original list
print("Given list is : \n",listA)
# using sorted() and enumerate
temp = {val: key for key, val in enumerate(sorted(listA))}
res = list(map(temp.get, listA))
# printing result
print("list with relative ordering of elements : \n",res)

Đầu ra

Chạy đoạn mã trên cho chúng ta kết quả sau -

Given list is :
[78, 14, 0, 11]
list with relative ordering of elements :
[3, 2, 0, 1]