리스트

매일 공부(ML)·2022년 1월 12일
0

Python

목록 보기
29/38

1차원 리스트(우리가 본 일반적인 리스트) 사용

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

a = []    # 빈 리스트 생성
 
for i in range(10):
    a.append(0)    # append로 요소 추가
 
print(a)

<2차원 리스트 사용하기>

평면구조로 가로* 세로이며 행과 열 모두 0으로 시작

  • 리스트 = [[값,값],[값,값],[값,값]]

<2차원 리스트의 요소 접근>

-리스트[세로인덱스][가로인덱스]

-리스트[세로인덱스][가로인덱스] = 값

a = [[10, 20], [30, 40], [50, 60]]
>>> a[0] [0]            # 세로 인덱스 0, 가로 인덱스 0인 요소 출력
10
>>> a[1][1]           # 세로 인덱스 1, 가로 인덱스 1인 요소 출력
40
>>> a[2][1]           # 세로 인덱스 2, 가로 인덱스 0인 요소 출력
60
>>> a[0][1] = 1000    # 세로 인덱스 0, 가로 인덱스 1인 요소에 값 할당
>>> a[0][1]
1000

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

a = []    # 빈 리스트 생성
 
for i in range(3):
    line = []              # 안쪽 리스트로 사용할 빈 리스트 생성
    for j in range(2):
        line.append(0)     # 안쪽 리스트에 0 추가
    a.append(line)         # 전체 리스트에 안쪽 리스트를 추가
 
print(a)

<for반복문을 한 번만 사용하기(가로 크기 작을 때 씀>

>>> a = [[10, 20], [30, 40], [50, 60]]
>>> for x, y in a:    # 리스트의 가로 한 줄(안쪽 리스트)에서 요소 두 개를 꺼냄
...     print(x, y)
...
10 20
30 40
50 60
-->가로 한 줄씩 반복하고 안쪽 리스트는 통째 반복

<for반복문을 두 번 사용하기>

a = [[10, 20], [30, 40], [50, 60]]
 
for i in a:        # a에서 안쪽 리스트를 꺼냄
    for j in i:    # 안쪽 리스트에서 요소를 하나씩 꺼냄
        print(j, end=' ')
    print()

<for와 range사용>

a = [[10, 20], [30, 40], [50, 60]]
 
for i in range(len(a)):            # 세로 크기
    for j in range(len(a[i])):     # 가로 크기
        print(a[i][j], end=' ')
    print()
    
 -->for i in range(len(a)):  세로 크기 3만큼 반복
 --> for j in range(len(a[i]):가로 크기 2만큼 반복

<while 반복문 한 번 사용>

a = [[10, 20], [30, 40], [50, 60]]

i = 0
while i < len(a):    # 반복할 때 리스트의 크기 활용(세로 크기)
   x, y = a[i]      # 요소 두 개를 한꺼번에 가져오기
   print(x, y)
   i += 1           # 인덱스를 1 증가시킴

<while 반복문 2번 사용>

a = [[10, 20], [30, 40], [50, 60]]
 
i = 0
while i < len(a):           # 세로 크기
    j = 0
    while j < len(a[i]):    # 가로 크기
        print(a[i][j], end=' ')
        j += 1              # 가로 인덱스를 1 증가시킴
    print()
    i += 1                  # 세로 인덱스를 1 증가시킴

<리스트 표현식으로 2차원 리스트 만들기>


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

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

할당과 복사 in 2차원 리스트
>>> a = [[10, 20], [30, 40]]
>>> b = a
>>> b[0][0] = 500
>>> a
[[500, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]
-----------------------------------------------------
>>> a = [[10, 20], [30, 40]]
>>> b = a.copy()
>>> b[0][0] = 500
>>> a
[[500, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]

------------------------------------------------------
>>> a = [[10, 20], [30, 40]]
>>> import copy             # copy 모듈을 가져옴
>>> b = copy.deepcopy(a)    # copy.deepcopy 함수를 사용하여 깊은 복사
>>> b[0][0] = 500
>>> a
[[10, 20], [30, 40]]
>>> b
[[500, 20], [30, 40]]

<3차원 리스트>
3차원리스트는 다음과 같이 높이×가로×세로 형태로 이루어져 있습니다.

리스트 = [[[값, 값], [값, 값]], [[값, 값], [값, 값]], [[값, 값], [값, 값]]]
리스트[높이인덱스][세로인덱스][가로인덱스]
리스트[높이인덱스][세로인덱스][가로인덱스] = 값

profile
성장을 도울 아카이빙 블로그

0개의 댓글