중복요소 개수 찾기

blood = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB']
a=blood.count('A')
print(a) #4

중복요소 하나의 개수를 찾기 위해서는 count()를 이용한다.

 

 

 

 

모든 중복요소 개수찾기

1

blood = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB']

count={}

for b in blood :
    if b not in count.keys():
        count[b] = 1
    else :
        count[b] +=1
print(count) #{'A': 4, 'O': 4, 'B': 3, 'AB': 2}

blood라는 리스트에 중복 요소가 존재하고, 중복요소의 개수를 찾아야 한다.

중복요소와 개수를 동시에 표현하기 위해 딕셔너리를 이용한다.

 

1. 빈 딕셔너리 count={} 생성

2. 리스트에서 for문으로 한 요소씩 가져와서 in이나 not in으로 딕셔너리에 해당하는 요소가 있으면 count를 1 더하고, 없으면 value를 1로 지정한다.

 

 

 

2

blood = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB']

count={}

for b in blood :
    count[b] = count.get(b,0)+1

print(count) #{'A': 4, 'O': 4, 'B': 3, 'AB': 2}

위의 내용을 이렇게 작성할 수 도 있다.

딕셔너리.get(키값, 기본값)으로 해당 키값은 value 기본값을 0으로 설정하고 value값을 1씩 더해준다.

 

 

 

 

3

blood = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB']

count = {b: blood.count(b) for b in blood}

print(count) #{'A': 4, 'O': 4, 'B': 3, 'AB': 2}

count()를 이용해서 간편 표현식으로도 만들 수 있다.

 

 

 

 

중복 요소 제거하기

blood = [ 'A','A','O', 'B', 'A', 'O', 'AB','O', 'A', 'B', 'O', 'B', 'AB']
blood=list(set(blood))
print(blood) #['B', 'A', 'O', 'AB']

set은 중복을 허용하지 않기 때문에 set으로 바꾸었다가 다시 list로 바꾸면 중복 요소가 제거된 리스트가 된다.