IT/파이썬

[코딩도장] day12. 2차원 리스트 - 반복문으로 리스트 만들기

_하늘여우_ 2020. 8. 24. 23:31

■ 들어가기

- 파이썬 코딩 도장 (남재윤/길벗). 을 공부하며 정리하는 블로그


▶ Unit23. 2차원 리스트 사용하기

     - 23.1 2차원 리스트를 만들고 요소에 접근하기

     - 23.2 반복문으로 2차원 리스트의 요소를 모두 출력하기

     - 23.3 반복문으로 리스트 만들기

     - 23.4 2차원 리스트의 할당과 복사 알아보기

 

>> 23.3 반복문으로 리스트 만들기 <<

- for 반복문과 append를 활용하여 리스트 만드는 방법

  ( append : 리스트 끝에 "요소 하나"를 추가하는 리스트 조작 메서드 // 리스트 추가 삭제편 확인)

 

1. for 반복문으로 1차원 리스트 만들기

>>> a = []     # 빈 리스트 생성
>>> a
[]
>>> for i in range(10) :
a.append(i)     # 리스트 a에 i 값을 요소로 추가
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

 

2. for 반복문으로 2차원 리스트 만들기

>>> a = []
>>> a
[]
>>> for i in range(3) :    # 3개 행(row) 생성 (세로)
             line = []    # 열(column)을 담을 빈 리스트 생성
             for j in range(2) :   # 2개 열(column) 생성 (가로)
                   line.append(j)   # 각 요소에 값을 적용
             a.append(line)


>>> print(a)
[[0, 1], [0, 1], [0, 1]]

-> 2차원 리스트에서 바깥쪽(행)이 아닌 안쪽(열) 리스트로 사용할 빈 리스트를 열 생성 전 추가!

 

3. 리스트 표현식으로 2차원 리스트 만들기

(참고) 리스트 표현식 : 파이썬 리스트만의 특징으로 리스트 안에 for 반복문과 if 조건문을 사용하여 리스트를 조작하는 방법 ( 리스트 추가/삭제 편 22.5 참고 )

>>> a = [[1 for j in range(2)] for i in range(3)]
>>> print(a)
[[1, 1], [1, 1], [1, 1]]

- ① [1 for j in range(2)] : range(2)로 0, 1의 숫자를 만들고 0, 1 각각에 "1"로 설정 (2번 반복) => [1, 1]

- ② for i in range(3) : range(3)으로 0, 1, 2의 숫자를 만들고 0, 1, 2 각각에 ①에서 생성한 [1, 1]을 반복하여 설정 (3번반복)

- 위의 for 반복문을 줄이고 싶다면 아래와 같이 "곱셈"으로 처리 가능

>>> a = [[1] * 2 for i in range(3)]
>>> print(a)
[[1, 1], [1, 1], [1, 1]]

 

4. 톱니형 리스트 만들기

- 지금까지의 "사각형 리스트"가 아닌, 가로 크기(열)이 불규칙한 "톱니형 리스트" 조작 방법