2차원 배열(리스트)를 선언하고 초기화하는 방법을 소개합니다.
1. 2차원 배열 선언 방법
2차원 리스트는 아래와 같이 선언할 수 있습니다.
[[a1,a2,a3,...,an],[b1,b2,b3,...,bn]]
예를 들어, 3열 2행으로 구성된 2차 배열은 아래와 같이 선언하고 내용을 출력할 수 있습니다.
arr = [[1, 2, 3], [4, 5, 6]]
print(arr)
Output:
[[1, 2, 3], [4, 5, 6]]
2. List comprehension으로 2차 배열 선언
위에서 소개한 방법으로 큰 사이즈의 배열을 미리 선언하려면 매우 힘듭니다.
아래와 같이 List comprehension을 이용하면 원하는 크기의 배열을 생성할 수 있습니다. 배열의 초기 값은 0으로 설정하였습니다.
rows = 3
cols = 4
arr = [[0 for j in range(cols)] for i in range(rows)]
print(arr)
Output:
[[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
만약 배열을 생성하면서 초기화도 함께 하려면 아래와 같이 List comprehension에 특정 값으로 설정되도록 만들면 됩니다.
(i + 1)*(j + 1)
가 초기 값이 되는 코드입니다.
rows = 3
cols = 4
arr = [[(i + 1)*(j + 1) for j in range(cols)] for i in range(rows)]
print(arr)
Output:
[[1, 2, 3, 4], [2, 4, 6, 8], [3, 6, 9, 12]]
3. 2차원 배열 행(row) 추가
자료구조는 리스트이기 때문에, append()
와 insert()
로 행을 추가할 수 있습니다. append()
는 리스트 마지막에 추가되고, insert()
은 첫번째 인자로 추가하려는 행의 위치를 선택할 수 있습니다.
arr = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr.append([9, 10, 11, 12])
print(arr)
arr.insert(0, [0, 0, 0, 0])
print(arr)
Output:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
[[0, 0, 0, 0], [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]
4. 2차원 배열의 행, 열의 값 변경
행과 열의 값을 변경할 수 있습니다. arr[index] =
처럼 행 전체를 변경할 수 있고, arr[i][j] =
처럼 요소 1개의 값만 변경할 수도 있습니다.
arr = [[1, 2, 3, 4], [5, 6, 7, 8]]
arr[0] = [9, 10, 11, 12]
print(arr)
arr[1][0] = 0
arr[1][3] = 0
print(arr)
Output:
[[9, 10, 11, 12], [5, 6, 7, 8]]
[[9, 10, 11, 12], [0, 6, 7, 0]]
4.1 for문으로 배열 전체 값 변경
아래와 같이 for문으로 모든 요소를 순회하면서 값을 변경할 수 있습니다.
arr = [[1, 2, 3, 4], [5, 6, 7, 8]]
for i in range(len(arr)):
for j in range(len(arr[i])):
arr[i][j] = (i + 1) * (j + 1)
print(arr)
Output:
[[1, 2, 3, 4], [2, 4, 6, 8]]
5. 2차원 배열 행(row) 삭제
del array[index]
로 2차 배열에서 특정 Index의 행을 삭제할 수 있습니다.
arr = [[1, 2, 3, 4], [5, 6, 7, 8]]
del arr[0]
print(arr)
Output:
[[5, 6, 7, 8]]
6. 2차원 배열 길이
다음과 같이 행과 열의 길이를 계산할 수 있습니다. 열의 길이가 같다는 전제하에, 첫번째 row의 길이를 열의 길이로 계산하였습니다.
arr = [[1, 2, 3, 4], [5, 6, 7, 8]]
print(f"length of rows: {len(arr)}")
print(f"length of columns: {len(arr[0])}")
Output:
length of rows: 2
length of columns: 4
Related Posts
- Python - Yaml 파일 파싱하는 방법
- Python - 파일 내용 삭제
- Python - for문에서 리스트 순회 중 요소 값 제거
- Python - 두 리스트에서 공통 요소 값 찾기
- Python - 문자열 앞(뒤)에 0으로 채우기
- Python - 공백으로 문자열 분리
- Python - 중첩 리스트 평탄화(1차원 리스트 변환)
- Python - 16진수 문자열을 Int로 변환
- Python - 두 날짜, 시간 비교
- Python f-string으로 변수 이름, 값 쉽게 출력 (변수명 = )
- Python - nonlocal과 global 사용 방법
- Python 바다코끼리 연산자 := 알아보기
- Python - pip와 requirements.txt로 패키지 관리
- Python - 딕셔너리 보기 좋게 출력 (pprint)
- Python - Requests 사용 방법 (GET/POST/PUT/PATCH/DELETE)
- Python - 온라인 컴파일러 사이트 추천
- Python - os.walk()를 사용하여 디렉토리, 파일 탐색
- Python - 문자열 비교 방법
- Python - Text 파일 읽고 쓰는 방법 (read, write, append)
- Python - 리스트에서 첫번째, 마지막 요소 가져오는 방법
- Python - 두개의 리스트 하나로 합치기
- Python - 리스트의 마지막 요소 제거
- Python - 리스트의 첫번째 요소 제거
- Python 소수점 버림, 4가지 방법
- Python 코드 안에서 버전 확인 방법
- Python 소수점 반올림, round() 예제
- Python - 리스트 평균 구하기, 3가지 방법
- Python - bytes를 String으로 변환하는 방법
- Python - String을 bytes로 변환하는 방법
- Python 버전 확인 방법 (터미널, cmd 명령어)
- Python - 람다(Lambda) 함수 사용 방법
- Python - dict 정렬 (Key, Value로 sorting)
- Python - range() 사용 방법 및 예제
- Python - 리스트를 문자열로 변환
- Python - 문자를 숫자로 변환 (String to Integer, Float)