여러 번 우리는 목록의 요소를 고유하게 식별해야 합니다. 이를 위해 목록의 각 요소에 고유한 ID를 할당해야 합니다. 이는 Python에서 사용할 수 있는 서로 다른 내장 함수를 사용하는 다음 두 가지 접근 방식으로 달성할 수 있습니다.
열거 및 설정 사용
열거 함수는 각 요소에 고유한 ID를 할당합니다. 그러나 목록이 이미 중복 요소인 경우 목록을 구성하는 키 값 쌍의 사전을 만들고 set 함수를 사용하여 고유한 값을 할당해야 합니다.
예시
# 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)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The given list : [5, 3, 3, 12] The list of unique ids is: [2, 0, 0, 1]
count() 및 map() 사용
map() 함수는 전달된 다른 매개변수에 동일한 함수를 계속해서 적용합니다. 그러나 count 메서드는 지정된 값을 가진 요소의 수를 반환합니다. 그래서 우리는 이 두 가지를 결합하여 아래 프로그램에서 주어진 목록의 요소에 대한 고유 ID 목록을 얻습니다.
예시
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)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The given list : [5, 3, 3, 12] The list of unique ids is: [0, 1, 1, 3]