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

Python으로 리스트에서 고유한 값만 출력하는 방법

리스트가 주어졌을 때, 그 안에서 중복되지 않은 고유한(unique) 값들만 추출하여 출력하는 것은 프로그래밍에서 자주 접하는 기본적인 문제입니다. 이 글에서는 파이썬(Python)을 이용해 리스트의 고유한 값을 출력하는 방법을 단계별로 살펴보겠습니다.

문제 예시

예를 들어 아래와 같은 리스트가 있을 때, 중복된 요소는 한 번씩만 포함된 결과를 얻어야 합니다.

입력: A = [1, 2, 3, 4, 2, 1, 9]
결과: [1, 2, 3, 4, 9]

알고리즘

고유한 값을 찾는 과정은 다음과 같은 단계로 진행됩니다.

  1. 사용자 입력으로 리스트를 생성합니다.
  2. 결과를 담을 빈 리스트를 하나 만듭니다.
  3. 원본 리스트의 모든 요소를 순회(traverse)합니다.
  4. 각 요소가 이미 결과 리스트에 존재하는지 확인합니다.
  5. 존재하지 않는 고유한 요소라면 결과 리스트에 하나씩 추가(append)합니다.
  6. 완성된 리스트를 화면에 출력합니다.

예제 코드

# Python program to print unique values from a list

def unique(A):
    # 결과를 저장할 빈 리스트 초기화
    uniquevalues = []

    # 리스트 전체를 순회
    for i in A:
        # 아직 등장하지 않은 값인지 확인
        if i not in uniquevalues:
            uniquevalues.append(i)

    # 고유한 값 출력
    for i in uniquevalues:
        print(i)

# Driver code
A = list()
n = int(input("Enter the size of the List ::"))
print("Enter the Element of List ::")
for i in range(int(n)):
    k = int(input(""))
    A.append(k)

print("The unique values from the List is ::>")
unique(A)

실행 결과

Enter the size of the List :: 6
Enter the Element of List ::
1
2
5
2
1
7
The unique values from the List is ::>
1
2
5
7

더 간단한 방법: set() 활용하기

위 방법 외에도 파이썬의 내장 자료형인 set()(집합)을 사용하면 코드를 훨씬 간결하게 작성할 수 있습니다. 집합은 애초에 중복된 값을 허용하지 않기 때문입니다.

def unique(A):
    return list(set(A))

A = [1, 2, 3, 4, 2, 1, 9]
print(unique(A))  # 출력: [1, 2, 3, 4, 9]

다만 set()은 원래의 순서를 보장하지 않으므로, 입력 순서가 중요하다면 위에서 소개한 순회 방식을 사용하는 것이 좋습니다.

마무리

이처럼 리스트에서 고유한 값을 추출하는 방법은 반복문과 조건문을 활용하는 기본 방식부터 set()을 이용한 간결한 방식까지 다양하게 구현할 수 있습니다. 상황에 맞게 적절한 방법을 선택해 활용해 보시기 바랍니다.