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

Gán giá trị cho số duy nhất trong danh sách bằng Python

Nhiều khi chúng ta cần xác định duy nhất các phần tử trong danh sách. Để làm được điều đó, chúng ta cần gán các ID duy nhất cho từng phần tử trong danh sách. Điều này có thể đạt được bằng hai cách tiếp cận sau bằng cách sử dụng các hàm sẵn có khác nhau có sẵn trong Python.

Với liệt kê và đặt

Hàm liệt kê chỉ định các id duy nhất cho mỗi phần tử. Nhưng nếu danh sách đã là các phần tử trùng lặp thì chúng ta cần tạo một từ điển các cặp giá trị khóa tạo thành danh sách và gán các giá trị duy nhất bằng cách sử dụng hàm set.

Ví dụ

# Given List
Alist = [5,3,3,12]
print("The given list : ",Alist)

# Assigning ids to values
enum_dict = {v: k for k, v in enumerate(set(Alist))}
list_ids = [enum_dict[n] for n in Alist]

# Print ids of the dictionary
print("The list of unique ids is: ",list_ids)

Đầu ra

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

The given list : [5, 3, 3, 12]
The list of unique ids is: [2, 0, 0, 1]

Với count () và map ()

Hàm map () áp dụng lặp lại cùng một hàm cho các tham số khác nhau được truyền cho nó. Nhưng phương thức count trả về số phần tử có giá trị được chỉ định. Vì vậy, chúng tôi kết hợp cả hai để có được danh sách các ID duy nhất cho các phần tử của một danh sách nhất định trong chương trình bên dưới.

Ví dụ

from itertools import count

# Given List
Alist = [5,3,3,12]
print("The given list : ",Alist)

# Assign unique value to list elements
dict_ids = list(map({}.setdefault, Alist, count()))

# The result
print("The list of unique ids is: ",dict_ids)

Đầu ra

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

The given list : [5, 3, 3, 12]
The list of unique ids is: [0, 1, 1, 3]