In [ ]:
# 문제 ) a = [1,2,3,4,5] 리스트가 주어졌을 때
# ==> [1,3,5]의 리스트로 만들어 보세요!!!!
# : 기존의 값들에서 필요한 조건에 맞는 값들만 필터링!!!
In [ ]:
# sol1) 내가 제거할 값들에 대해서 규칙이 있냐/없냐? yes
# 규칙 : 홀수/짝수 판별
# 살리는 값을 기준으로 한다면 : 홀수만 살리자!!
# 2로 나눠서 나머지가 1인 모든 수 : %
# ==> a의 모든 원소를 대상으로 규칙을 적용해봐야 함!!!
# for문으로 롤링!!!!!
In [ ]:
a = [ 1,2,3,4,5]
a
Out[ ]:
[1, 2, 3, 4, 5]
In [ ]:
b = []
for i in a:
if i % 2 == 1:
b.append(i)
b
Out[ ]:
[1, 3, 5]
In [ ]:
# ==> 리스트컴프리핸션 : 필터링에 대한 1줄
[i for i in a if i % 2==1]
Out[ ]:
[1, 3, 5]
In [ ]:
# +++ a 중에서 홀수인 값들만 *10을 해서 모으세요!!!
[i*10 for i in a if i % 2==1]
Out[ ]:
[10, 30, 50]
In [ ]:
# ==> 필터링에 조건이 규칙적으로 표현이 가능하면 if 조건식 작성!
In [ ]:
In [ ]:
# sol2) 규칙이 없다고 가정하겠습니다!!!
# ==> 데이터 수집을 할 때 : 예외 처리쪽!!!!
# ==> 코테에서도 종종 사용이 됨!!!!
In [ ]:
# 규칙을 만들 수 없는 상황!! --> 예외적인 상황들을 나열!!!
a = [1,2,3,4,5]
for i in a:
if (i==1) or (i==3) or(i==5): # i%2==1
print(i)
1
3
5
In [ ]:
# + 필터링을 하려는 것들도 여러개를 나열!!!
a = [1,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,4,5,5,5,5,5]
b = [1, 3, 5]
for i in a:
if i not in b: #(i==1) or (i==3) or(i==5): # i%2==1
print(i)
2
2
2
2
2
2
2
4
In [ ]:
# 중요!!! ) in
# --> for 문에서 in은 돌릴 대상들을 지정하는 것!!!
# --> if 문에서 필터링들의 대상들을 나타날 때 리스트업할 때..
In [ ]:
In [ ]:
# a의 원소들 중에서 1,3,5를 제외한 원소들에 한해서
# 값을 +10을 하세요!!!!!
# ==> [12,12,14, 12,12]
# ==> 조건 : 리스트 컴프리핸션을 사용해서 구현!!!
a = [1,1,2,2,3,4,3,3,5,2,2]
[i+10 for i in a if i not in [1,3,5]]
Out[ ]:
[12, 12, 14, 12, 12]
In [ ]:
# 정리)
# if 문에 여러 조건이 들어갈 때 ( 필터링 관련되어서..)
# --> 대상을 중시믕로 리스트업 방식도 사용할 수 있다!!!!
# 논리 연산자 and , or 보다는
# in, not in (******* 중요 ****)
In [ ]:
In [ ]:
#####################################################
In [ ]:
# 문제 : 시험을 봤습니다.
# 시험성적 a = [90,80,30,50,60,70,85,99]
# ===> 시험의 통과 기준 점수를 60점 이상이라고 할 때
# 몇 명이 통과했나요?
In [ ]:
a = [90,80,30,50,60,70,85,99]
a
Out[ ]:
[90, 80, 30, 50, 60, 70, 85, 99]
In [ ]:
# sol1) 꾸역꾸역
# --> 카운팅 변수 : 초기화 --> 0
cnt = 0
for i in a:
if i >=60:
cnt += 1
print(cnt)
6
In [ ]:
# sol2) 리스트 컴프리핸션
In [ ]:
[ i for i in a if i >= 60]
Out[ ]:
[90, 80, 60, 70, 85, 99]
In [ ]:
len([ i for i in a if i >= 60])
Out[ ]:
6
In [ ]:
In [ ]:
In [ ]:
# 정리)
# 값/조건대해서 정리/필터링 --> 규칙이 있느냐/ 없느냐!!!
# => 규칙이 있다면 : 규칙을 코드화
# ( 어려운 코테 : 알고리즘 + 복잡한 상황 )
# => 규칙이 없다면 : 최소한으로 리스트업을 하는 방식도 고민!!
# in, not in ~~~
# ++ 기본적인 구조 : for~~~ if ~~~~////
# ==> 파이썬에서는 간단하게 "리스트컴프리핸션!!!"
# ++ 추가적인 기능도 더해서....
'Python' 카테고리의 다른 글
파이썬 기초 - 05_범위(in_out) (0) | 2024.08.21 |
---|---|
파이썬 기초 - 04_Dictionary (0) | 2024.08.21 |
파이썬 기초 - 02_리스트변경 (0) | 2024.08.19 |
InterpretML - 설명가능한 머신러닝 (0) | 2024.08.17 |
PyOD - 강력한 이상치 탐지 라이브러리 (0) | 2024.08.17 |