Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 리스트 각 요소에 크기 순위 값 할당하기

리스트의 각 요소에 크기 순서(순위)와 동일한 값을 할당해야 하는 경우, set 연산과 zip 메서드, 그리고 리스트 컴프리헨션을 함께 사용하면 간단하게 해결할 수 있습니다.

예제 코드

다음은 실제 구현 예제입니다.

my_list = [91, 42, 27, 39, 24, 45, 53]

print('리스트 원본:')
print(my_list)

my_ordered_dict = dict(zip(list(set(my_list)), range(len(set(my_list)))))

my_result = [my_ordered_dict[elem] for elem in my_list]

print('결과:')
print(my_result)

실행 결과

리스트 원본:
[91, 42, 27, 39, 24, 45, 53]
결과:
[0, 2, 6, 1, 5, 3, 4]

코드 동작 원리

  1. 리스트 정의 및 출력: 숫자로 구성된 리스트를 정의한 뒤 콘솔에 출력합니다.

  2. 고유 값 추출: set() 함수로 리스트에서 중복을 제거한 고유한 값만 남긴 후, 이를 다시 리스트로 변환합니다.

  3. 순위 매핑 생성: range() 함수로 0부터 시작하는 순번을 생성하고, zip()으로 고유 값들과 묶은 뒤 dict()로 변환하여 '값 → 순위' 형태의 딕셔너리를 만듭니다.

  4. 딕셔너리 저장: 완성된 딕셔너리를 변수에 할당합니다.

  5. 결과 도출: 리스트 컴프리헨션을 사용해 원본 리스트의 각 요소를 해당 순위 값으로 치환한 새로운 리스트를 생성합니다.

  6. 결과 출력: 최종 결과가 콘솔에 표시됩니다.

이처럼 set, zip, dict, 리스트 컴프리헨션을 조합하면 별도의 반복문 없이도 리스트의 각 요소를 크기 순위 값으로 손쉽게 변환할 수 있습니다.