코딩 테스트 문제들을 풀다 보면, 0으로 채워진 리스트를 만들어야 하는 경우가 많습니다. 보통 저는 이런 경우 numpy 라이브러리를 사용하는데, 코딩 테스트 환경에서는 외부 라이브러리를 사용하지 못하는 경우가 대부분인 것으로 알고 있습니다. 이런 경우에는 for문과 파이썬 리스트 자료형을 활용하여 1차원 리스트, 2차원 리스트를 만들어야 합니다.
0으로 채워진 1차원 리스트 만들기
a = []
for i in range(5):
a.append(0)
print(a)
위와 같이 코드를 작성하면, 5개의 0을 요소로 가진 1차원 리스트 a가 생성됩니다. 그런데 리스트 내포(list comprehensions)라는 기법을 활용하면 단 한 줄로 1차원 리스트를 생성할 수 있습니다. 참고로 comprehension이라는 영어 단어에는 "포함, 압축"이라는 의미가 포함되어 있습니다. 리스트 내포의 문법은 다음과 같습니다.
리스트명 = [표현식 for 반복자 in 반복할 것]
리스트 내포를 활용하여 1차원 리스트를 만들어보겠습니다.
a = [0 for i in range(5)]
코드가 아주 간결해졌죠?
0으로 채워진 2차원 리스트 만들기
2차원 리스트를 생성하기 위해서는 역시 이중 for문을 사용해야 합니다.
a = []
for i in range(4):
row = []
for j in range(5):
row.append(0)
a.append(row)
print(a)
그런데 너무 길죠. 역시 리스트 내포를 사용하면 한 줄로 리스트 생성을 완료할 수 있습니다.
a = [[0 for j in range(5)] for i in range(4)]
print(a)
'Dev > python' 카테고리의 다른 글
[python] 가상 환경에 설치되어 있는 패키지 목록을 전달해주는 방법(pip freeze) (0) | 2022.11.09 |
---|---|
[matplotlib] 박스플롯(boxplot) 해석하기 (0) | 2022.11.04 |
[python] yaml 파일 파이썬에서 읽기 (0) | 2022.10.28 |
[python] 문자열 대소문자 변환하기 (upper, lower, isupper, islower) (0) | 2022.10.25 |
[python] 리스트에서 최대값, 최소값의 인덱스 구하기 (0) | 2022.10.09 |
[python] scikit-learn의 confusion matrix 해석하기 (0) | 2022.10.08 |
[python] 딕셔너리에서 value가 가장 큰 key 알아내는 방법 (0) | 2022.10.07 |
[python] 10진수를 2진수, 8진수, 16진수로 변환하는 방법 (4) | 2022.10.03 |