이 기사에서는 주어진 목록에서 고유한 요소를 효율적으로 추출하기 위한 다양한 기술과 전략을 살펴보겠습니다. 전통적인 루프부터 현대적인 Python 접근 방식까지 다양한 방법을 탐구함으로써 파이썬.
Input : [ 1,2, 1, 1, 3, 4, 3, 3, 5 ] Output : [1, 2, 3, 4, 5] Explaination: The output only contains the unique element from the input list.>
목록에서 고유한 값 가져오기
이 기사에서 다룰 주제는 다음과 같습니다.
- 순회 목록
- 사용 세트 방법
- 사용 감소() 함수
- 사용 Operator.countOf() 방법
- 사용 팬더 모듈
- 사용 numpy.unique
- 사용 컬렉션.카운터()
- 사용 dict.fromkeys()
목록에서 고유한 값 가져오기 목록 순회를 통해
순회를 사용하면 목록의 모든 요소를 순회하고 해당 요소가 이미 Unique_list에 있는지 확인한 다음 해당 요소가 고유 목록에 추가될 수 있습니다. 이것은 하나를 사용하여 수행됩니다 for 루프 값이 고유 목록에 있는지 여부를 확인하는 또 다른 if 문은 루프의 다른 항목과 동일합니다.
파이썬3
# function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> x>not> in> unique_list:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>산출
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
시간 복잡도: O(n*n)
보조 공간: 에)
목록에서 고유한 값 가져오기 설정 방법 사용
사용 세트() Python의 속성을 사용하면 고유한 값을 쉽게 확인할 수 있습니다. 목록의 값을 세트에 삽입합니다. Set은 두 번 이상 삽입되더라도 값을 한 번만 저장합니다. list_set=set(list1)으로 집합에 모든 값을 삽입한 후 이 집합을 목록으로 변환하여 인쇄합니다.
파이썬3
def> unique(list1):> ># insert the list to the set> >list_set>=> set>(list1)> ># convert the set to the list> >unique_list>=> (>list>(list_set))> >for> x>in> unique_list:> >print> x,> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>산출
the unique values from 1st list is 40 10 20 30 the unique values from 2nd list is 1 2 3 4 5>
시간 복잡도: O(n), 여기서 n은 목록의 길이입니다.
보조 공간: O(n), 여기서 n은 목록의 길이입니다.
Reduce() 함수를 사용하여 Python의 목록에서 고유한 값 가져오기
Python 가져오기 사용 줄이다() functools에서 모든 요소를 반복하고 요소가 중복되거나 고유한 값인지 확인합니다. 아래는 위의 접근 방식을 구현한 것입니다.
파이썬3
from> functools>import> reduce> def> unique(list1):> ># Print directly by using * symbol> >ans>=> reduce>(>lambda> re, x: re>+>[x]>if> x>not> in> re>else> re, list1, [])> >print>(ans)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>산출
the unique values from 1st list is [10, 20, 30, 40] the unique values from 2nd list is [1, 2, 3, 4, 5]>
Operator.countOf() 메서드를 사용하여 Python의 목록에서 고유한 값 가져오기
'unique' 함수는 빈 'unique_list'를 초기화한 다음 'list1'을 반복합니다. 각 요소 'x'에 대해 '를 사용합니다. op.countOf() ' 'unique_list'에 'x'가 있는지 확인합니다. 찾을 수 없는 경우(개수는 0) 'x'가 'unique_list'에 추가됩니다. 최종 고유 값은 다음을 사용하여 인쇄됩니다. 고리 . 드라이버 코드는 'list1'과 'list2'라는 두 목록에 대한 이 프로세스를 보여주며 원래 순서를 유지하면서 각 목록에서 고유한 요소를 추출하는 방법을 보여줍니다.
파이썬3
import> operator as op> # function to get unique values> def> unique(list1):> ># initialize a null list> >unique_list>=> []> ># traverse for all elements> >for> x>in> list1:> ># check if exists in unique_list or not> >if> op.countOf(unique_list, x)>=>=> 0>:> >unique_list.append(x)> ># print list> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>산출
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
시간 복잡도:O(N)
보조공간 : O(N)
pandas 모듈을 사용하여 Python의 목록에서 고유 값 가져오기
'고유' 기능은 팬더 'list1'에서 시리즈를 생성하려면 'drop_duplicates()'를 사용하여 중복을 제거하고 고유 값 목록을 얻습니다. 그런 다음 고유 목록을 반복하고 각 요소를 인쇄합니다. 드라이버 코드는 두 목록 'list1'과 'list2'에 대한 프로세스를 보여 주며 각 목록에 고유한 값을 제공합니다.
파이썬3
import> pandas as pd> # function to get unique values> def> unique(list1):> >unique_list>=> pd.Series(list1).drop_duplicates().tolist()> >for> x>in> unique_list:> >print>(x)> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> #This code is contributed by Vinay Pinjala.> |
>
>
산출:
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
시간 복잡도:O(N)
보조공간 : O(N)
목록에서 고유한 값 가져오기 numpy.unique 사용
Python 가져오기 사용 멍청하다 , 배열의 고유 요소도 가져옵니다. 첫 번째 단계에서는 목록을 다음으로 변환합니다. x=numpy.array(목록) 그런 다음 사용 numpy.unique(x) 목록에서 고유한 값을 가져오는 함수입니다. numpy.unique() 목록의 고유한 값만 반환합니다.
파이썬3
bash if 문
# using numpy.unique> import> numpy as np> def> unique(list1):> >x>=> np.array(list1)> >print>(np.unique(x))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>
산출:
the unique values from 1st list is [10 20 30 40] the unique values from 2nd list is [1 2 3 4 5]>
시간 복잡도: numpy.unique() 함수에서 사용하는 정렬 알고리즘을 사용하기 때문에 O(nlogn)입니다.
보조 공간: O(n) numpy.unique() 함수가 입력 배열의 복사본을 만든 다음 고유한 요소를 반환하기 전에 정렬하기 때문입니다.
collections.Counter()를 사용하여 Python의 목록에서 고유한 값 가져오기
Python을 사용하여 Counter() 가져오기 컬렉션 Counter 요소의 모든 키를 인쇄하거나 다음을 사용하여 직접 인쇄합니다. * 상징. 아래는 위의 접근 방식을 구현한 것입니다.
파이썬3
from> collections>import> Counter> # Function to get unique values> def> unique(list1):> ># Print directly by using * symbol> >print>(>*>Counter(list1))> # driver code> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> print>(>'the unique values from 1st list is'>)> unique(list1)> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> print>(>'
the unique values from 2nd list is'>)> unique(list2)> |
>
>산출
the unique values from 1st list is 10 20 30 40 the unique values from 2nd list is 1 2 3 4 5>
시간 복잡도: O(n) , 여기서 n은 입력 목록의 요소 수입니다.
보조공간 : O(n)
dict.fromkeys()를 사용하여 목록에서 고유한 값 가져오기
사용하여 키에서() 사전 데이터 구조 메서드를 사용하면 고유한 요소를 가져올 수 있습니다. 먼저 중복 요소로 구성된 목록을 정의해야 합니다. 그런 다음 fromkeys() 메서드를 사용한 후 결과를 저장할 변수를 사용해야 합니다. fromkeys() 메서드는 사전의 일부이므로 해당 결과를 목록으로 변환합니다. 따라서 기본적으로 모든 고유 키와 해당 값이 None인 사전을 반환합니다.
파이썬3
# defining a list which consists duplicate values> list1>=> [>10>,>20>,>10>,>30>,>40>,>40>]> list2>=> [>1>,>2>,>1>,>1>,>3>,>4>,>3>,>3>,>5>]> # storing the result of the fromkeys()> # operation and converting it into list> unique_list_1>=> list>(>dict>.fromkeys(list1))> unique_list_2>=> list>(>dict>.fromkeys(list2))> # Printing the final result> print>(unique_list_1,unique_list_2,sep>=>'
'>)> |
>
>산출
[10, 20, 30, 40] [1, 2, 3, 4, 5]>
시간 복잡도 - O(n)
공간 복잡도 – O(n)