2022 데이터 사이언스/Python Basics

05. 반복문(1): for문과 list

gool 2022. 6. 6. 11:40
반복문의 경우 목적에 따라 for문과 while문이 사용된다.

 

 

 

Python에서 반복문 for문과 while문이 각각 어떤 경우에 사용되는지 구분할 필요가 있다.

예제를 풀면서도 왜 for문 또는 while문이 사용되어야 하는지 생각해보는 것이 좋다.

 

for문은 반복 횟수가 명확할 때 사용된다.

1부터 100까지의 숫자를 돌아가면서 검사하는 프로그램이 하나의 예시가 될 수 있다.

 

반면, while문은 반복 횟수가 명확하지 않은 경우에 사용된다.

따라서 사용자 프로그램의 큰 틀을 잡을 때 while문을 사용한다.

프로그램의 사용자가 몇 차례나 input을 넣을지 알 수 없기 때문이다.

 

이번 포스팅에서는 for문에 주로 사용되는 자료형과,

해당 자료형과 함께 쓰이는 함수들에 대해 알아보려고 한다.

 

 

 

for문과 iterable 자료형

 

for문은 다음의 자료형들과 관계가 매우 깊다.

  • 문자열(str)
  • 리스트(list)
  • 튜플(tuple)
  • 세트(set)
  • 딕셔너리(dictionary)

 

반복문과 관계가 깊은 자료형들의 특징은 iterable(반복 가능)이다.

for문은 아래와 같은 형태로 사용되기 때문에 자료형의 반복 실행 가능 여부가 중요하다.

 

 

for 변수 in iterable 자료형:

    종속문장

 

 

for문을 실행하면 iterable 자료형 내의 자료들이 차례로 변수에 할당되면서,

iterable 자료형의 크기만큼 종속문장이 반복 실행된다.

 

 

 

list, tuple

 

자료형들의 자료형으로 불리는 list와 tuple에 대해 알아보자.

두 자료형은 형태가 유사하지만, 하나의 큰 특징으로 인해 list가 tuple에 비해 자주 사용된다.

for문에 자주 사용되는 list를 좀 더 집중적으로 살펴보려고 한다.

 

list와 tuple은 모두 자료마다 순서가 존재한다(subscriptable).

즉, 각각의 자료에 번호(index)가 부여되어 있으며, Python에서 인덱스는 0부터 시작한다.

순서가 있는 자료형은 str, list, tuple 세 개 뿐이며,

인덱스가 있기 때문에 이를 이용해 자료에 접근하는 '인덱싱'이 가능하다.

인덱싱이 범위를 벗어난 경우, IndexError : list index out of range 오류가 발생한다.

 

 

* 인덱싱 형태

list/tuple의 이름[index]

 

 

list와 tuple은 자료 변경 가능 여부에서 차이를 보인다.

list는 내부 자료 변경이 가능하지만, tuple은 자료 변경이 불가능하다.

이처럼 자료 변경이 가능한 성질로 인해 list가 for문과 함께 많이 활용된다.

 

 

 

list 함수

 

list 자료형은 아래 함수들과 결합해 사용된다.

해당 함수들은 오직 list 자료형과만 결합될 수 있다.

  • list.append(x)   : x 자료를 list의 맨 뒤에 추가
  • list.insert(idx, x)   : x 자료를 idx 인덱스에 추가
  • list.pop(idx)   : idx 인덱스의 자료를 제거 (default: 맨 뒤)
  • list.count(x)   : list 안의 x 자료의 개수를 반환
  • list.index(x)   : x 자료의 인덱스를 반환
  • list.sort()   : list 오름차순 정렬 (list 내의 자료형이 동일한 경우)
  • list.reverse()   : list 거꾸로 뒤집기
  • list.clear()   : list 비우기

 

 

아래 함수들은 list를 인자로 받아 list 내부의 자료를 분석할 때 사용된다.

list 외에 다른 자료형도 인자로 받을 수 있다.

  • sum(list)   : list 자료들의 합 (숫자 자료형인 경우)
  • len(list)   : list 내부 자료의 개수

 

* sum(list) / len(list)

list 내부에 숫자 자료형만 있다는 가정 하에 자료들의 평균을 구하는 공식

 

 

 

range()

 

range() 함수는 숫자 자료형을 인자로 받아 아래와 같은 형태로 사용되며,

start 부터 stop-1 까지의 숫자를 list로 반환한다. (증감 폭 : step)

 

 

range(  [start: 0] ,  stop ,  [step: 1]  )

* start과 step은 생략이 가능하며, default 값은 각각 0과 1이다.

 

 

step이 음수인 경우 감소하는 수열을 반환한다.

단, step의 증감 방향과 start → stop의 증감 방향이 같아야 list가 정상적으로 반환된다.

예를 들어 list(range(10, 1)), list(range(1, 10, -1)는 증감 방향이 달라 빈 list가 반환된다.

 

 

 

복합 연산자

 

a = int/float,

li = str 일 때,

 

a = a + 3   ▶   a += 3

a = a - 4   ▶   a -= 4

a = a * 2   ▶   a *= 2

a = a / 5   ▶   a /= 5

a = a // 3   ▶   a //= 3

a = a ** 4   ▶   a **= 4

 

li = li + 'c'   ▶   li += 'c'

li = li * 4   ▶   li *= 4

 

 

 

https://github.com/tldnjs1231/python-basics/blob/main/python-basics-05-for.py

 

GitHub - tldnjs1231/python-basics

Contribute to tldnjs1231/python-basics development by creating an account on GitHub.

github.com

 

 

 

'2022 데이터 사이언스 > Python Basics' 카테고리의 다른 글

07. 반복문(3): 반복문의 중첩  (0) 2022.06.14
06. 반복문(2): for문 예제  (0) 2022.06.14
04. 조건문(2): if문 확장  (0) 2022.06.05
03. 조건문(1): if문  (0) 2022.06.04
02. 입력 함수 input()  (0) 2022.06.03