In [ ]:
# 잠시 리뷰
# 1. 파이썬의 여러가지 자료형!
# ==> 값 1개, 여러개의 값을
# ==> 여러 개 값 : 리스트/튜플/문자열, Dict(k-v), set
# 2. 반복 : for --> 주어진 여러개의 값을 돌려주는 역할!!!
# : 필요한 값들을 만들어서 돌린다!!!
# 3. 제어문 : if ~ else ~~ ( if~~elif ~~ elif ~~ else)
# ==> 하나의 덩어리!!!!( 각기 조건을 분할의 개념!)
# ==> 조건 작성에서 명확하게 작성!!!!!!
In [ ]:
In [ ]:
# 문제) ["A","B","A","O","AB","AB","O","A","B","AB"]
# 여러 사람들의 혈핵형의 정보를 수집하였습니다.
# ==> 각 혈행별로 몇 명의 인원이 있는지 구하고 싶다.
# ==> 카운팅!!!!
# --> 접근을 A형은 몇 명인가,,,( 어려운 신 분은 이 문제부터)
In [ ]:
# 방법1) 그냥 하기 --> 주어진 리스트 돌려가면서 수행
# 방법2) 리스트컴프리핸션 사용!!!( 꼭 1줄 아니여도..)
In [ ]:
blood_data = ["A","B","A","O","AB","AB","O","A","B","AB"]
blood_data
Out[ ]:
['A', 'B', 'A', 'O', 'AB', 'AB', 'O', 'A', 'B', 'AB']
In [ ]:
# sol1) 꾸역 꾸역 --> 카운팅!!!!!
cnt_a = 0
cnt_b = 0
cnt_ab = 0
cnt_o = 0
for blood in blood_data:
if blood == "A":
cnt_a += 1
elif blood == "B":
cnt_b += 1
elif blood =="O":
cnt_o += 1
elif blood =="AB":
cnt_ab += 1
print("A형:",cnt_a )
print("B형:",cnt_b )
print("O형:",cnt_o)
print("AB형:",cnt_ab )
A형: 3 B형: 2 O형: 2 AB형: 3
In [ ]:
for blood in range(len(blood_data)):
print(blood_data[blood])
A B A O AB AB O A B AB
In [ ]:
for i,v in enumerate(blood_data):
print(i,v)
0 A 1 B 2 A 3 O 4 AB 5 AB 6 O 7 A 8 B 9 AB
In [ ]:
In [ ]:
# 참고) 지도상에서 움직이는 것들을 리스트로 표현하는 스타일!!!
blood_data = ["A","B","A","O","AB","AB","O","A","B","AB"]
blood_type = ["A","B","O","AB"]
blood_cnts = [ 0, 0, 0, 0 ]
for blood in blood_data:
# 내가 리스터업 한 혈핵형의 종류 중에서 몇 번째에 호흥하는지
for i in range(len(blood_type)):
if blood == blood_type[i]:
blood_cnts[i] += 1
else:
pass
blood_cnts
Out[ ]:
[3, 2, 2, 3]
In [ ]:
In [ ]:
# sol2) 리스트 컴프리핸션
# Why: 기본적인 구조가 for ~~~ if ~~ 뭐 할께요. : 리스트컴프리핸션
In [ ]:
# Try A형만 몇 면인지 LC으로 처리.
# ---> 필터링!! + 카운팅
len([ b for b in blood_data if b =="A"])
Out[ ]:
3
In [ ]:
len([ b for b in blood_data if b =="B"])
Out[ ]:
2
In [ ]:
len([ b for b in blood_data if b =="O"])
Out[ ]:
2
In [ ]:
len([ b for b in blood_data if b =="AB"])
Out[ ]:
3
In [ ]:
print( len([ b for b in blood_data if b =="A"]))
print( len([ b for b in blood_data if b =="B"]))
print( len([ b for b in blood_data if b =="O"]))
print( len([ b for b in blood_data if b =="AB"]))
3 2 2 3
In [ ]:
# ==> 내가 코드를 하면서 ctrl +c/v
# ==> 고정적인 부분과 가변적인 부분을 체크!!!!
# 가변적인 부분들에 대해서 리스트업!!!
In [ ]:
b_types = ["A","B","O","AB"]
for b_type in b_types:
print(b_type, len([ b for b in blood_data if b ==b_type]))
A 3 B 2 O 2 AB 3
In [ ]:
In [ ]:
# ++ 개인적인 추가 사항 : 위의 문제를 파이썬의 Dict로 구현!!!
# ==> 나중에 할 문제하고 완전 동일해서 skip
In [ ]:
'Python' 카테고리의 다른 글
| 파이썬 기초 - json (0) | 2024.08.27 |
|---|---|
| 파이썬 기초 - 02_pandas_Series (6) | 2024.08.27 |
| 파이썬 기초 - 05_범위(in_out) (0) | 2024.08.21 |
| 파이썬 기초 - 04_Dictionary (0) | 2024.08.21 |
| 파이썬 기초 - 03_리스트필터링 (0) | 2024.08.19 |