[Algorithm] Python Algorithm

[python] "코테"를 위한 기초 파이썬 (2) - List Comprehension & Lambda

mingyung 2024. 2. 20. 22:50

이번 포스팅에서는 List Compeohension에 대해서 알아본다.

 

List Comprehension

잘쓰면 좋지만 길어지면 머리가 아픈 List Comprehension에 대해서 알아보자.

 

일반적으로 list를 사용할 때 우리는 다음과 같은 문법을 사용하게 된다.

arr=[0]*10
for i in range(10): 
	arr[i] = i

즉 우리는 선언과, 값 할당을 분리해서 사용한다.

 

List Comprehension은 이 과정을 한번에, 한 줄로 가능하게 한다.

 

기본적인 문법은 다음과 같다

[ (변수를 활용하여 만들 값) for (변수 명) in (순회가능한 값)]

 

사용예시

#가장 기본적인 형태
one_list = [i for i in range(10)]

# if else문을 사용해볼 수 있다.
one_list = [1 if x in val else 0 for val in data]

아잇 이게 뭔 말인가 싶을 수 있는데, comprehension을 본 때 for 이후부터 살펴보먄 이해가 가능하다.

 

[1 if x in val else 0 for val in data]

data 에서 한개의 원소를 꺼내어 val이라 하고,

 

[1 if x in val else 0 for val in data]

val에 값이 있으면 1, 아니면 0을 값으로 하겠다는 의미이다.