리스트 컴프리헨션

CODA·2022년 7월 20일
0

리스트 컴프리헨션 (list comprehension) 이란 for, append 등을 통해 리스트를 초기화할때 길어지는 코드를 대괄호 ([])안의 한줄 코드로 작성하는 방식을 의미한다.

예시

# 0 ~ 9 를 포함하는 리스트
[i for i in range(10)]

# 위의 경우에서 홀수만
[i for i in range(10) if i % 2 == 1]

위의 코드는 아래와 같다

# 0 ~ 9 를 포함하는 리스트
for i in range(10):
	[].append(i)

# 홀수
for i in range(10):
	if i % 2 == 1:
    	[].append(i)

2차원 리스트를 초기화할때 더욱 효과적

  • 코딩 테스트 등에서 N * M 사이즈의 맵상에서 문제를 제시하는 경우가 많음
  • 위의 원리와 동일하게 여기서도 적용할 수 있음
array = [[0]*M for _ in range(N))
  • 단, 아래와 같이하면 안됨. 아예 하나의 열이 동일하게 참조되어 값 수정시 모두 반영되는 결과를 초래할 수 있음
array = [[0]*M]]*N # 잘못된 예시

즉 좀 편하게 정리해보자면..

[append할꺼 / for 문 및 range / 조건문]

  • 그냥 빈 리스트 [] 에 append 해야하는 경우라면 습관을 좀 들여서 작성하는게 참 좋을듯 하다
  • 코드 양을 줄일 수 있다는 경제적인 이유 이외에도 작성하면서 탄력을 얻을 수 있다는 점에서(?) 여러모로 장점을 갖는 것 같다
  • 아래 링크는 내가 작성한 포스팅 중에 리스트 컴프리헨션이 쓰인 예시들 이다

코테 문제에서의 리스트 컴프리헨션 예시

profile
금융권에 가고싶은 김코다입니다. 취업을 하면 기타치며 조르바처럼 살고파요.

0개의 댓글