반응형
Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | |||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 |
| 10 | 11 | 12 | 13 | 14 | 15 | 16 |
| 17 | 18 | 19 | 20 | 21 | 22 | 23 |
| 24 | 25 | 26 | 27 | 28 | 29 | 30 |
| 31 |
Tags
- 자바스크립트
- 단위테스트
- 문자열
- 배열
- Visual Studio Code
- javascript
- junit
- html
- list
- IntelliJ
- junit5
- HashMap
- Java
- 정규식
- input
- 테스트자동화
- 자바
- 자바문법
- Array
- math
- vscode
- js
- ArrayList
- 스프링부트
- Eclipse
- 인텔리제이
- java테스트
- SpringBoot
- CSS
- string
Archives
- Today
- Total
어제 오늘 내일
[Python 기초] "미리 빈 칸을 만들어두자!" 파이썬 리스트 크기 지정과 초기화 본문
리스트의 크기를 미리 지정한다는 것은, 마치 아파트 입주 전에 미리 몇 호실까지 있을지 정해두고 빈 방을 만들어두는 것과 같습니다. 데이터가 들어올 자리를 미리 확보해두면 나중에 특정 위치(index)에 값을 바로 집어넣을 수 있어 편리합니다.
1. 가장 많이 쓰는 방법: 곱하기() 연산자
가장 직관적이고 빠른 방법입니다. [초기값] * 크기 형태로 작성합니다.
📌 예제 코드: 0으로 채워진 리스트 만들기
# 10칸짜리 리스트를 만들고 모두 0으로 초기화
list_size = 10
zeros = [0] * list_size
print(zeros)
# 출력: [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
# 이제 원하는 위치에 바로 값을 넣을 수 있습니다.
zeros[5] = 100
print(zeros)
2. 연속된 숫자로 크기 지정: 활용
단순히 빈 칸이 아니라 1, 2, 3... 처럼 순서대로 숫자가 채워진 리스트가 필요할 때 사용합니다.
📌 예제 코드: 1부터 10까지 채워진 리스트
# 1부터 10까지 숫자가 들어있는 크기 10의 리스트
numbers = list(range(1, 11))
print(numbers)
# 출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
3. [중요] 2차원 리스트 크기 지정하기 (주의사항!)
가장 실수가 많은 부분입니다. 2차원 리스트(행렬)를 만들 때 곱하기(*) 연산자를 잘못 쓰면 모든 행이 같은 주소를 가리키는 대참사가 발생합니다.
❌ 잘못된 방법 (복사 버그 발생)
# 3행 3열을 만들고 싶어서 이렇게 하면...
bad_matrix = [[0] * 3] * 3
bad_matrix[0][0] = 99
print(bad_matrix)
# 출력: [[99, 0, 0], [99, 0, 0], [99, 0, 0]]
# (첫 번째 칸만 바꿨는데 모든 행의 첫 번째 칸이 다 바뀌어 버립니다!)
✅ 올바른 방법 (리스트 컴프리헨션)
각 행을 독립적인 객체로 새로 생성해주어야 합니다.
# 3행 3열 2차원 리스트 만들기
rows, cols = 3, 3
matrix = [[0 for _ in range(cols)] for _ in range(rows)]
matrix[0][0] = 99
print(matrix)
# 출력: [[99, 0, 0], [0, 0, 0], [0, 0, 0]] (정상적으로 하나만 바뀜!)
4. 값이 없는 상태로 칸만 만들기: 사용
숫자 0도 넣기 싫고, "아직 값이 없음"을 명시적으로 표현하고 싶을 때 None을 사용합니다.
# 데이터 5개가 들어올 자리를 미리 비워둠
data_slots = [None] * 5
print(data_slots)
# 출력: [None, None, None, None, None]
📝 마치며
핵심 요약입니다.
- 1차원 리스트:
[초기값] * 크기로 빠르게 만든다. - 2차원 리스트: 반드시 리스트 컴프리헨션(
[[0] * 열 for _ in range(행)])을 사용한다. - 숫자 채우기:
list(range(시작, 끝))을 활용한다.
리스트의 크기를 정해두고 나면, 이제 그 안에 든 숫자들을 정렬하거나 특정 조건의 값만 필터링하는 작업이 훨씬 수월해집니다.
반응형
'IT > Python' 카테고리의 다른 글
| [Python 기초] "원하는 곳만 골라서 반전!" 리스트 부분 슬라이싱 및 뒤집기 (0) | 2026.05.19 |
|---|---|
| [Python 기초] "거꾸로 줄을 서시오!" 파이썬 리스트 뒤집기 3가지 방법 (0) | 2026.05.18 |
| [Python 기초] "이 바구니에 데이터가 몇 개 들어있지?" 파이썬 리스트 길이 구하기 (len) (1) | 2026.05.17 |
| [Python 실전 팁] "누가 겹치고 누가 빠졌지?" 파이썬 리스트 교집합, 차집합 비교하기 (1) | 2026.05.14 |
| [Python] "중복 데이터, 대체 어디 숨어있어?" 파이썬 리스트 중복 인덱스(위치) 찾기 완벽 가이드 (0) | 2026.05.12 |
Comments
