제퍼넷 로고

Python을 사용하여 목록에서 고유한 값 가져오기

시간

개요

Python 프로그래밍은 무한한 가능성의 세계로 향하는 문을 열어주며, 우리 앞에 종종 놓인 기본 작업 중 하나는 목록에서 고유한 값을 추출하는 것입니다. 목록에서 고유한 값을 얻는 것은 Python 프로그래밍의 일반적인 작업입니다. 각 코드 줄에 고유한 목적이 있는 것처럼 목록의 요소도 마찬가지이며 복잡한 중복 항목에서 단 하나의 보석을 식별하는 것이 중요한 기술이 됩니다.

고유 값은 중복 없이 한 번만 발생하는 목록의 요소를 나타냅니다. 이 기사에서는 목록에서 고유한 값을 얻는 다양한 방법에 대해 알아보고 다양한 시나리오에서 해당 값의 중요성에 대해 논의합니다.

Python 목록의 고유 값

차례

고유한 값을 얻는 것이 왜 중요한가요?

목록에서 고유한 값을 얻는 것은 많은 프로그래밍 작업에서 매우 중요합니다. 이를 통해 중복 항목을 제거하고 데이터 분석을 단순화하며 코드 효율성을 향상시킬 수 있습니다. 대규모 데이터 세트로 작업하든, 통계 분석을 수행하든, 데이터 구조를 조작하든, 고유한 값을 사용하면 정확하고 의미 있는 결과를 제공할 수 있습니다.

Python을 사용하여 목록에서 고유한 값을 얻는 방법

set() 함수 사용

Python의 set() 함수는 목록에서 고유한 값을 얻는 강력한 도구입니다. 자동으로 중복 항목을 제거하고 고유 요소만 포함된 집합 개체를 반환합니다. 그런 다음 필요한 경우 이 세트를 다시 목록으로 변환할 수 있습니다.

my_list = [1, 2, 3, 3, 4, 5, 5, 6]
unique_values = list(set(my_list))
print(unique_values)

산출

[1, 2, 3, 4, 5

목록 이해 사용

목록 이해는 목록에서 고유한 값을 얻는 또 다른 간결하고 효율적인 방법입니다. 목록을 반복하고 새 목록에 요소가 이미 있는지 확인하여 중복 항목을 필터링하고 고유한 값만 얻을 수 있습니다.

my_list = [1, 2, 3, 3, 4, 5, 5, 6]
unique_values = [x for i, x in enumerate(my_list) if x not in my_list[:i]]
print(unique_values)

산출

[1, 2, 3, 4, 5

dict.fromkeys() 메서드 사용

dict.fromkeys() 메서드는 목록 요소를 키로 사용하여 사전을 생성하여 목록에서 고유한 값을 가져올 수 있습니다. 사전에는 중복 키가 있을 수 없으므로 이 메서드는 자동으로 중복을 제거하고 고유 값 목록을 반환합니다.

my_list = [1, 2, 3, 3, 4, 5, 5, 6]
unique_values = list(dict.fromkeys(my_list))
print(unique_values)

산출

[1, 2, 3, 4, 5

Counter() 함수 사용

collections 모듈의 Counter() 함수는 목록에 있는 요소의 발생 횟수를 계산하는 강력한 도구입니다. Counter 개체를 목록으로 변환하여 원래 목록에서 고유한 값을 얻을 수 있습니다.

from collections import Counter
my_list = [1, 2, 3, 3, 4, 5, 5, 6]
unique_values = list(Counter(my_list))
print(unique_values)

산출

[1, 2, 3, 4, 5

Pandas 라이브러리 사용

Pandas 라이브러리는 포괄적인 데이터 조작 및 분석 도구 세트를 제공합니다. 목록이나 pandas Series 객체에서 고유한 값을 얻기 위한 Unique() 함수를 제공합니다.

import pandas as pd
my_list = [1, 2, 3, 3, 4, 5, 5, 6]
unique_values = pd.Series(my_list).unique().tolist()
print(unique_values)

산출

[1, 2, 3, 4, 5

또한 읽기 : 15가지 필수 Python 목록 함수 및 사용 방법(2024년 업데이트)

방법 비교

이제 성능, 메모리 사용량, 변경 가능 및 불변 요소 처리를 기준으로 위의 방법을 비교해 보겠습니다.

퍼포먼스

성능 측면에서 set() 함수와 목록 이해 방법은 목록에서 고유한 값을 얻는 가장 빠른 방법입니다. 이는 O(n)의 시간 복잡도를 가지며, 여기서 n은 목록의 길이입니다. dict.fromkeys() 메서드와 Counter() 함수도 O(n)의 시간 복잡도를 갖지만 약간 느리게 만드는 추가 단계가 포함됩니다. Pandas 라이브러리는 데이터 분석에 강력하지만 오버헤드로 인해 상대적으로 느립니다.

메모리 사용

메모리 사용량 측면에서 set() 함수와 목록 이해 방법은 목록에서 직접 중복 항목을 제거하므로 메모리 효율적입니다. dict.fromkeys() 메서드와 Counter() 함수는 추가 데이터 구조를 생성하므로 더 많은 메모리를 소비할 수 있습니다. 포괄적인 도구인 Pandas 라이브러리에는 데이터 구조 및 작업을 위한 추가 메모리가 필요합니다.

변경 가능 및 불변 요소 처리

위에서 설명한 모든 방법은 변경 가능 요소와 불변 요소 모두에서 잘 작동합니다. 목록에 정수, 문자열, 튜플 또는 사용자 정의 개체가 포함되어 있는지 여부에 관계없이 이러한 메서드는 이를 효과적으로 처리하고 그에 따라 고유한 값을 제공할 수 있습니다.

또한 다음을 읽을 수 있습니다 : 완전 초보자를위한 Python 목록 프로그램

Python의 목록에서 고유한 값을 얻는 예

다양한 시나리오의 목록에서 고유한 값을 가져오는 방법을 이해하기 위해 몇 가지 예를 더 살펴보겠습니다.

예 1: 튜플 목록에서 고유한 값 가져오기

목록에 튜플이 포함되어 있고 각 튜플의 특정 요소를 기반으로 고유한 값을 얻으려는 경우 목록 이해를 사용할 수 있습니다.

my_list = [(1, 'a'), (2, 'b'), (3, 'a'), (4, 'c'), (5, 'b')]
unique_values = [x for i, x in enumerate(my_list) if x[1] not in [y[1] for y in my_list[:i]]]
print(unique_values)

산출

[(1, 'a'), (2, 'b'), (4, 'c')]

예 2: 중첩 목록에서 고유 값 찾기

목록이 중첩되어 있고 모든 수준에서 고유한 값을 얻으려면 itertools 라이브러리를 사용하여 목록을 평면화한 다음 원하는 방법을 적용할 수 있습니다.

import itertools
my_list = [[1, 2, 3], [2, 3, 4], [3, 4, 5]]
flattened_list = list(itertools.chain.from_iterable(my_list))
unique_values = list(set(flattened_list))
print(unique_values)

산출

[1]

고유한 값을 효율적으로 얻기 위한 팁과 요령

중복을 제거하기 전에 목록 정렬

고유 값의 순서가 중요하지 않은 경우 중복 항목을 제거하기 전에 목록을 정렬하면 성능이 향상될 수 있습니다. 이는 정렬을 통해 유사한 요소를 하나로 모아 중복 항목을 더 쉽게 식별하고 제거할 수 있기 때문입니다.

중첩 목록에 setdefault() 메서드 사용

중첩된 목록으로 작업할 때 setdefault() 메서드를 사용하면 고유한 값을 효율적으로 얻을 수 있습니다. 이를 통해 요소를 키로, 요소의 발생을 값으로 사용하여 사전을 만들 수 있습니다. 사전 키를 다시 목록으로 변환하여 고유한 값을 얻을 수 있습니다.

고급 작업을 위해 itertools 라이브러리 사용

itertools 라이브러리는 고유한 값 획득을 포함하여 목록에 대한 고급 작업을 위한 강력한 도구를 제공합니다. chain(), groupby() 및 Combinations()와 같은 함수를 사용하여 복잡한 데이터 구조에서 고유한 값을 조작하고 추출할 수 있습니다.

결론

이 기사에서는 Python의 목록에서 고유한 값을 가져오는 다양한 방법을 살펴보았습니다. 우리는 고유한 값을 얻는 것의 중요성에 대해 논의하고 성능, 메모리 사용량, 변경 가능 및 불변 요소 처리를 기반으로 다양한 방법을 비교했습니다. 또한 고유한 값을 효율적으로 얻기 위한 예시와 팁도 제공했습니다. 이러한 방법과 그 적용을 이해함으로써 귀하의 능력을 향상시킬 수 있습니다. Python 프로그래밍 기술을 향상시키고 코드 효율성을 향상시킵니다.

spot_img

최신 인텔리전스

spot_img