[TIL] Python 리스트 중복 요소 개수 찾기, 제거, 삭제

Hailee·2020년 11월 21일
0

[ TIL ]

목록 보기
11/40
post-thumbnail

중복 요소 개수 찾기

for looping으로 list 내 중복 요소들을 dictionary 내에
key, value 조합으로 정리할 수 있으리라 생각했는데
for 안에서 어떻게 처리해야할지 싶어서
'python list 중복 개수' 라고 검색했더니 나온 블로그 ㅎㅎㅎㅎ
참고

1. try, except 문 사용하기

예외처리할 때 사용되는 try, except를 사용할 수 있다.

for looping을 통해 list의 요소를 하나씩 꺼내어 새로운 dictionary 내에 넣는 것!

  • 예제
    : Input으로 주어진 list의 각 요소(element)가 해당 list에 몇번 나타나는지 수를 dictionary로 만들어서 리턴해주세요.
    Dictionary의 key는 list의 요소 값이며 value는 해당 요소의 총 빈도수 입니다.
    : 예를 들어, 다음과 같은 list가 input으로 주어졌다면:
my_list = ["one", 2, 3, 2, "one"]

: 다음과 같은 dictionary가 리턴되어야 합니다.

{
   "one" : 2,
    2 : 2,
    3: 1
}
  • 풀이
def get_occurrence_count(my_list):
  new_list = {}
  for i in my_list:
    try: new_list[i] += 1
    except: new_list[i] = 1
  return(new_list)
  • dictionary 내에 존재하는 key값이라면 try문이 실행되면서 해당 key를 가진 value+1이 되고
  • dictionary 내에 없다면 except문이 실행되며 value:1로 저장된다.

2. count() 함수 이용

  • 예제
lists = [1,1,1,2,2,3,4,"abc"]
cnt = lists.count(1)   # 정수 1이 몇개인지 찾는다. ->> count("찾을 요소")     
print("%s은, %d개 있습니다." %(1, cnt))
-
결과값  >>>>>>>> 1은, 3개 있습니다.

***

중복요소 삭제, 제거하기

1. SET 이용하기

  • 예제
arr = ['but', 'i', 'wont', 'hesitate', 'no', 'more', 'no', 'more', 'it', 'cannot', 'wait', 'im', 'yours']
-
arr = set(arr) # "arr"라는 리스트의 데이터 타입을 set으로 바꾼다.
#set은 중복요소를 허용하지 않는 데이터형태이기 때문에, 중복요소들이 제거된다.
arr = list(list3)

그냥 자료형 자체를 set 으로 바꾸어주면,
중복을 허용하지 않는 자료형태이기 때문에 중복 요소들이 제거된 상태가 된다.

다시 list 형으로 바꾸어주면 중복요소 사라져있음!

profile
웹 개발 🐷😎👊🏻🔥

0개의 댓글