Python 사전을 사용하는 동안 사전의 각 요소를 고유하게 식별해야 할 수도 있습니다. 이를 위해 사전의 각 요소에 고유한 ID를 할당해야 합니다. 이 기사에서는 Python 사전에서 동일한 고유 ID가 반복되는 경우 요소에 동일한 고유 ID를 할당하는 방법을 살펴봅니다.
enumerate() 및 OrderedDict.fromkeys() 사용
열거 함수는 사전의 각 요소에 카운터를 추가하여 주어진 사전을 확장합니다. 그런 다음 사전에서 동일한 카운터 값을 추출하여 ID의 중복 값을 제거하는 OrderedDict.fromkeys()를 적용합니다.
예시
from collections import OrderedDict Alist = ['Mon','Tue','Wed','Mon',5,3,3] print("The given list : ",Alist) # Assigning ids to values list_ids = [{v: k for k, v in enumerate( OrderedDict.fromkeys(Alist))} [n] for n in Alist] # The result print("The list of ids : ",list_ids)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The given list : ['Mon', 'Tue', 'Wed', 'Mon', 5, 3, 3] The list of ids : [0, 1, 2, 0, 3, 4, 4]
컬렉션에서 OrderedDict 사용
이 방법에서는 새 요소에만 새 키를 할당하는 defaultdict 함수를 사용합니다. 그런 다음 람다 함수를 사용하여 고유 ID의 새 목록을 반복합니다.
예시
from collections import defaultdict # Given List Alist = ['Mon','Tue','Wed','Mon',5,3,3] print("The given list : ",Alist) # Assigning ids to values d_dict = defaultdict(lambda: len(d_dict)) list_ids= [d_dict[n] for n in Alist] # Print ids of the dictionary print("The list of ids : ", list_ids)
출력
위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -
The given list : ['Mon', 'Tue', 'Wed', 'Mon', 5, 3, 3] The list of ids : [0, 1, 2, 0, 3, 4, 4]