리스트 컴프리헨션
- 리스트를 초기화하는 방법 중 하나
- 대괄호([]) 안에 조건문과 반복문을 넣는 방식으로 리스트를 초기화할 수 있음
# 0부터 19까지의 수 중에서 홀수만 포함하는 리스트
array = [i for i in range(20) if i % 2 == 1]
print(array)
[출력]
>> [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
# 1부터 9까지의 수의 제곱 값을 포함하는 리스트
array = [i * i for i in range(1, 10)
print(array)
[출력]
>> [1, 4, 9, 16, 25, 36, 49, 64, 81]
2차원 리스트를 초기화할 때 매우 효과적으로 사용될 수 있음
# N * M 크기의 2차원 리스트 초기화
n = 3
m = 4
array = [[0] *m for _ in range(n)]
print(array)
[출력]
>> [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
📍특정 크기의 2차원 리스트를 초기화할 때는 반드시 리스트 컴프리헨션 이용해야함
# N * M 크기의 2차원 리스트 초기화(잘못된 방법)
n = 3
m = 4
array = [[0] * m] *n
print(array)
array[1][1] = 5
print(array)
[출력]
>> [[0, 0, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
[[0, 5, 0, 0], [0, 5, 0, 0], [0, 5, 0, 0]]
내부적으로 포함된 3개의 리스트가 모두 동일한 객체에 대한 3개의 레퍼런스로 인식되기 때문에 모두 5로 변경됨.
'Python > 공부' 카테고리의 다른 글
파이썬 n진수 변환 (0) | 2023.01.07 |
---|---|
파이썬 최대공약수, 최소공배수 함수 - gcd, lcm (2) | 2023.01.05 |
입력 (0) | 2022.12.31 |
Python 내장함수 - enumerate (0) | 2022.03.23 |
클래스 (0) | 2022.03.18 |