list에서 unique를 확인하는 방법에 대해 알아보도록 하겠습니다.
numpy를 사용하면 굉장히 쉽게 확인할 수 있습니다.
import random
import numpy as np
arr = [random.choice(['A', 'B', 'C']) for _ in range(50)]
print(arr)
print(np.unique(arr))
## ['C', 'C', 'C', 'A', 'B', 'A', 'A', 'C', 'C', 'A', 'A', 'B', 'C', 'A', 'B', 'C', 'C', 'C', 'C', 'A', 'C', 'A', 'C', 'B', 'C', 'A', 'B', 'A', 'B', 'B', 'C', 'C', 'A', 'C', 'C', 'A', 'B', 'C', 'C', 'B', 'B', 'A', 'A', 'C', 'C', 'C', 'B', 'C', 'A', 'B']
## array(['A', 'B', 'C'], dtype='<U1')
random 모듈을 사용해서 list를 만들어준 뒤 numpy안에 있는 nuique를 불러와서 사용해주면 끝입니다.
정말로 간단하게 활용할 수 있습니다.
이번에는 numpy.unique가 어떻게 동작하는지 직접 구현해보면서 알아보도록 하겠습니다.
def unique_elements(arr):
unique_list = []
for item in arr:
if item not in unique_list:
unique_list.append(item)
return unique_list
list_ = unique_elements(arr)
print(list_)
## ['C', 'A', 'B']
먼저 arr의 중복 값을 제외한 unique값을 담을 list를 만들어 준뒤
for 문을 돌면서 각각의 tiem 중 if문을 통해 이미 들어가져있는 값은 넘기고 새로운 값이 들어왔을 때 append를
해주는 코드입니다.
def bubble_sort(arr):
n = len(arr)
for i in range(n):
for j in range(0, n-i-1):
if arr[j] > arr[j+1]:
arr[j], arr[j+1] = arr[j+1], arr[j]
bubble_sort(list_)
print(list_)
## ['A', 'B', 'C']
마지막으로 bubble_sort를 직접 구현해서 정렬까지 해주면 끝입니다.
감사합니다.
'python' 카테고리의 다른 글
[python] BeautifulSoup header 설정 방법 (0) | 2024.02.19 |
---|---|
python list element count (collections.Counter) (0) | 2023.11.15 |
python을 활용하여 json 데이터 받아오기 (df 변환) (0) | 2023.08.28 |