Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 목록의 각 고유 값에 ID 할당

<시간/>

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]