본문 바로가기
IT/파이썬

파이썬(python)을 활용한 데이터 분석 - 반복문 주요 함수

by 호유(ho_you) 2022. 12. 8.
반응형

 

1. 반복문 기초

 

(1) for 문 기초문법

for 요소 in 이터레이터:

    반복할 구문
L1 = [1,2,3,4,5]
for l in L1:
    print(l)
    if l == 2:
      break; #break를 만났을때 가장 가까운 for문만 빠져나감
      

# 1 2 출력

 

(2) 대표적인 이터레이터(iterator) 객체 생성 함수

- 이터레이터 객체 : 값을 차례대로 꺼낼 수 있는 객체를 의미
2-1) range
- range(시작 , 끝 , 스텝)
- range(x) x인자 하나만 넣을 경우 range(0, x , 1) 와 동일함. 시작 0과 스텝 1이 디폴트 인자가됨.
- range(a,b) a,b 인자 두개만 넣을 경우 range(a,b,1)과 동일함. 스텝 1이 디폴트 인자가됨.

range(1,10,2)

#리스트로 변환
list(range(1,10,2))

#range를 사용한 구구단

for i in range(2,10):
  for j in range(1,10):
      print("{}*{}={}".format(i,j,i*j))
  print('\n')

2-2) itertools 모듈의 함수
- itertoos.product(*L)

for v1, v2, v3 in itertools.product(L1, L2, L3):

#위 코드는 3중 for문과 동일
for v1 in L1:
  for v2 in L2:
    for v3 in L3:

- itertools.combinations(p,r)
p에서 r개씩 뽑아내어 조합할 수 있는 경우의 수 계산할때 사용

L1 = [a,b,c,d]

for comb in itertools.combinations(L1,2):
   print(comb)
   

# a b
# a c
# a d
# b c
# b d
# c d

- itertools.permutations(p,r)
p에서 r개씩 뽑아내어 가능한 모든 순열을 계산할 때 사용

L = [a,b,c]

for r in range(1, len(L)+1):
  for comb in itertools.permutations(L,r):
    print(comb)
    
#a
#b
#c
#a b
#a c
#b a <= 순열이기 때문에 a b 와 순서가 다른 b a도 출력.
#b c
#c a
#c b


(3) 리스트(list) comprehension
: for 문을 사용하여 한 줄로 리스트를 생성할 때 주로 사용
[ 아웃풋 for 요소 in 이터레이터 if 조건 ]

L1 = [ x**2 for x in range(10) if x%2 == 0 ]

#위와 동일한 코드
L1 = []
for x in range(10):
  if x%2==0:
    L.append(x**2) # append : 리스트 맨 끝에 요소 추가


(4) 사전(dictionary) comprehension
: for 문을 사용하여 한 줄로 리스트를 생성할 때 주로 사용
{ key: value for key,val in iterator if 조건 }

dic1 = {x:y*2 for x,y in zip(range(10), range(10)) if x%2 ==0}

#위 코드와 동일

dic1 = dict()
  for x,y in zip(range(10),range(10)):
    if x%2==0:
      dic1[x]=y**2

 

 

반응형

댓글