a = [1,2,3,4,5,6,7,8,9,10]
b = [] # 비어있는 리스트를 생성함
for i in a:
if i% 2 ==0:
b.append(i)
print(b)
예제2. 아래의 a리스트의 데이터를 정제해서 b 리스트에 담고 b리스트를 출력하시오.
a = [ '1.끝내주게 숨쉬기.' , '2.간지나게 자기!', '3.작살나게 밥먹기?' ]
b = [ ]
for i in a:
b.append( i.strip('1234567890.!?') )
print(b)
예제3. 아래의 리스트에서 정상품만 b리스트에 담아서 출력하시오.
a = ['정상품', '정상품', '불량품', '정상품', '정상품', '정상품', '불량품', '불량품']
b = [] # b 리스트를 정의합니다.
for i in a:
if i != '불량품': # '불량품'이 아닌 경우에만 추가합니다.
b.append(i)
print(b)
예제 4. winter.txt 에서 elsa라는 단어가 포함된 단어를 다음과 같이 d라는 리스트에 담고 출력하시오.
# 파일 열기
winter = open("c:\\data\\winter.txt")
winter2 = winter.read()
# 데이터에서 단어 추출
data = winter2.split()
# 빈 리스트 'd'를 정의합니다.
d = []
# 'elsa' 또는 'Elsa'를 포함하는 단어를 'd' 리스트에 추가합니다.
for i in data:
if i.lower()=='elsa':
d.append(i)
# 결과 출력
print(d)
print(len(d))
■ 리스트 함수 이해하기3 (insert, extend)
* 리스트에 요소값 추가하는 3가지 함수
1. append : 리스트 마지막에 요소명을 추가 2. insert : 리스트 특정위치에 요소 추가 3. extend: 리스트 여러개의 요소들을 한번에 추가
box = ['정상품', '정상품', '정상품', '불량품', '정상품', '불량품']
for num, item in enumerate(box):
print( num, item )
문제1. 아래의 box 리스트에서 불량품의 자리번호 2개를 출력하시오 !
box = ['정상품', '정상품', '정상품', '불량품', '정상품', '불량품']
for num, item in enumerate(box):
if item == '불량품':
print(num)
문제2. 어제 마지막 문제 코드를 수행해서 d 리스트를 생성하시오 !
winter = open('c:\\data\\winter.txt')
data = winter.read()
data2 = data.split()
d = [ ]
for i in data2:
st = i.strip(' 1234567890.,?!-/~*^"@#$%&')[0:4]
if st.lower() == 'elsa':
d.append(i)
print(d)
print(len(d))
* 데이터의 종류 3가지 ?
1. 정형화된 데이터 : 테이블 <------------- SQL 로 분석 가능 2. 비정형화된 데이터 : 텍스트, 영상, 사진 <---- 파이썬 , R 로 분석가능 3. 반정형화된 데이터 : xml, html 과 같이 키와 값으로 이루어진 데이터
문제3. d 리스트 안에 elsa가 몇개가 있는지 카운트 하시오
winter = open('c:\\data\\winter.txt')
data = winter.read()
data2 = data.split()
d = [ ]
for i in data2:
st = i.strip(' 1234567890.,?!-/~*^"@#$%&')[0:4]
if st.lower() == 'elsa':
d.append(i.lower()) # 소문자로 변경해서 입력
print(d)
print(len(d))
d.count('elsa')
문제4. d 리스트 안에 elsa’s 가 몇개가 있는지 출력하시오 !
※ 리스트의 count 함수로는 count 할 수 없는 요소를 카운트 하는 방법
문제5. 아래의 리스트에서 이름에 영희가 포함된 학생은 몇명인지 출력하시오!
name = ['김인호', '최영희', '안상수', '윤성식','김영희']
cnt = 0
for s in name: # name 리스트에서 요소들을 하나씩 가져오는데
if '영희' in s: # s 에 '영희' 가 포함되어있으면
cnt += 1 # cnt 를 1 증가시켜라
print (cnt)
box = ['정상품', '정상품', '정상품', '정상품', '불량품', '정상품', '불량품']
# 삭제할 인덱스를 저장할 리스트를 생성합니다.
indexes_to_delete = []
# 리스트를 순회하면서 각 요소의 인덱스와 값을 확인합니다.
for index, item in enumerate(box):
# 만약 요소가 '불량품'이면, 그 인덱스를 삭제할 리스트에 추가합니다.
if item == '불량품':
indexes_to_delete.append(index)
# 저장된 인덱스를 역순으로 순회하면서 삭제합니다.
# 역순으로 삭제하는 이유는 인덱스가 변경되지 않도록 하기 위함입니다.
for index in reversed(indexes_to_delete):
del box[index] # 해당 인덱스의 요소를 리스트에서 삭제합니다.
# 최종적으로 수정된 리스트를 출력합니다.
print(box)
score = [78, 92, 23, 54, 67, 88]
def f(x):
# 입력값 x를 받아 등급을 반환하는 함수
if x >= 80:
return '상'
elif x >= 50:
return '중'
else:
return '하'
# f(92)의 결과를 출력
print(f(92)) # 출력: '상'
# score 리스트의 각 점수에 대해 f 함수를 적용하여 등급을 리스트로 만듭니다.
# map 함수는 각 요소에 f 함수를 적용하고, 그 결과를 반환합니다.
result = list(map(f, score))
# 결과 리스트를 출력합니다.
print(result) # 출력: ['중', '상', '하', '중', '중', '상']
예제2. 다음 weight 리스트에서 요소가 80이상인 것만 별도의 리스트 result 에 담아 출력하시오.
def f2(x):
if x >= 80:
return x
else:
return
weight=[ 72, 81, 90, 78, 84, 65 ]
result = list( map( f2, weight ) )
result
설명: 위의 결과를 보면 none이 출력되고 있음. (none이 출력되지 않으려면 filter 처리해야됨)
예제3. 위의 코드에서 none이 나오지 않게 하시오.
def f2(x):
if x >= 80:
return x
else:
return
weight=[ 72, 81, 90, 78, 84, 65 ]
result = list( filter( f2, weight ) )
result
문제1. 다음의 온도 리스트에서 특정 범위의 온도만 추출하여 새로운 리스트로 반환하는 코드를 작성하시오. (온도 28~35도)
temp = [22, 28, 34, 29, 30, 25, 31, 33, 27, 26, 35, 32, 24]
def f(x):
# 온도가 28도 이상 33도 미만인 경우에만 값을 반환합니다.
if 28 <= x < 33:
return x
else:
return None # 조건에 맞지 않으면 None을 반환합니다.
# filter 함수는 리스트의 각 요소에 f 함수를 적용하여,
# f 함수가 True를 반환하는 요소만을 남깁니다.
result = list(filter(f, temp))
print(result)
■ 리스트 함수 이해하기9. (zip, enumerate)
예제1. 다음 2개 리스트의 요소를 짝지어 출력하시오.
weight = [71,81,90,78,84,65]
result = ['정상','과체중','비만','정상','과체중','정상']
for i, k in zip(weight, result):
print (i,k)
문제1. 다음 3개 리스트의 요소를 짝지어 출력하시오.
name = ['김인호', '안상수', '이상식', '오연수', '강인식', '고성인']
weight= [ 71, 81, 90, 78, 84, 65 ]
result = ['정상', '과체중', '비만', '정상', '과체중', '정상' ]
for n, w, r in zip( name, weight, result ):
print( n, w, r )
문제2. 위에서 출력되고 있는 결과를 all_data 라는 비어있는 리스트를 만들고 append 시키시오 !
name = ['김인호', '안상수', '이상식', '오연수', '강인식', '고성인']
weight= [ 71, 81, 90, 78, 84, 65 ]
result = ['정상', '과체중', '비만', '정상', '과체중', '정상' ]
all_data=[]
for n, w, r in zip( name, weight, result ):
all_data.append([n,w,r])
print(all_data)
예제2. enumerate 함수를 이용하여 아래의 name 리스트를 번호를 붙여서 출력하시오
name = ['김인호','안상수','이상식','오연수','강인식','고성인']
for i , k in enumerate(name, start =1):
print(i,k)
문제1. 아래의 리스트를 이용해서 다음과 같이 결과를 출력하시오.
name = ['김인호','안상수','이상식','오연수','강인식','고성인']
weight = [71,81,90,78,84,65]
result = ['정상','과체중','비만','정상','과체중','정상']
for i,(n,w,r) in enumerate (zip(name, weight, result),start =1):
print(i, n,w,r)