Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Tìm Thứ Tự Tương Đối Của Các Phần Tử Trong List (Finding Relative Order of Elements in List) trong Python


Ta được cho một danh sách các phần tử là số nguyên. Ta cần tìm thứ tự tương đối, nghĩa là nếu chúng được sắp xếp tăng dần thì ta cần tìm chỉ số vị trí của chúng.

Với sorted và index

Ta sắp xếp toàn bộ danh sách trước, sau đó tìm chỉ số của từng phần tử sau khi sắp xếp.

Ví dụ

listA = [78, 14, 0, 11] # in danh sách gốc print("Given list is : \n",listA) # sử dụng sorted() và index() res = [sorted(listA).index(i) for i in listA] # in kết quả print("list with relative ordering of elements : \n",res)

Đầu ra

Chạy mã trên cho kết quả sau:

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

Với enumerate và sorted

Với enumerate và sorted ta trích xuất từng phần tử và tạo container dictionary chứa enumerate và sorted. Ta lấy từng phần tử qua container này dùng hàm map.

Ví dụ

listA = [78, 14, 0, 11] # in danh sách gốc print("Given list is : \n",listA) # sử dụng sorted() và enumerate temp = {val: key for key, val in enumerate(sorted(listA))} res = list(map(temp.get, listA)) # in kết quả print("list with relative ordering of elements : \n",res)

Đầu ra

Chạy mã trên cho kết quả sau:

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