본문 바로가기
기본소양/Pythonic CODE

[Pythonic CODE] 1. List Comprehension

by EXUPERY 2021. 1. 24.
반응형

 

List Comprehension

Life is short, you need python !

 


파이썬은 효율적인 표현을 추구하는 언어입니다. 자바나 C언어를 했던 분들 입장에서는 코드를 이런 식으로 짜도 되나?라고 생각하실 수도 있겠습니다. 하지만 그만큼 편리하고 효율적인 언어임에는 분명합니다. 이번 시리즈에서는 파이썬의 기본이 어느정도 있는 상태에서 파이썬에대해 조금 더 알기위해 작성하는 포스트이며, 조금 더 고급지게 코드를 작성하고 다른 사람들이 쓰는 코드를 이해할 수 있는 것에 그 목적이 있습니다. 가장많이 쓰고, 알면 몸이 편해지는 방법을 다룹니다.

 

 

List Comprehension

 

기존의 리스트를 사용해서 다른 리스트를 만드는 기법입니다. 아무래도 기존의 리스트에 append를 해주는 것 보다 메모리를 덜 차지하다보니 속도가 더 빠릅니다. 파이썬에서 List Comprehension은 정말많이 쓰이는 방법 중 하나입니다.

append를 이용한 리스틔 추가방법은 위와 같습니다. 이를 List Comprehension을 이용하여 사용해본다면,

이렇게 한줄로 끝나게 됩니다!

 

 

 

Condition

리스트 안에서 for 반복문이 작동되는 것이죠. 또한 조건을 달 수도 있는데,

for문 뒤에 if를 달아서 위와 같이 사용할 수 있습니다. 여기서는 melon이 아닌 과일만 new_fruits에 담아달라는 말이 되겠죠!

 

 

 

Nested For loop

for 문 2개를 같이 사용할 수도 있습니다. 예를 들어 위와같은 경우 first와 second를 각각 하나씩 합치는데,

0+A, 0+B, 0+C, 0+D 까지하고 1로넘어가서 1 + A~ 로 되는 것을 알 수 있죠.

 

Nested, For, If

Neste For loop도 똑같이 if를 뒤에 붙여서 조건을 달 수도있었습니다.

 

1 Dimensoion, 2 Dimension

우리는 지금까지 1차원의 리스트만 보았는데요, 리스트안에 리스트가 들어간 2차원으로 만들 수도 있습니다. 위의 코드가 1차원 리스트이고, 아래코드가 2차원 리스트인데요. 순서가 좀 다른 것이 보이죠?

아래의 2차원리스트는 j가 먼저 'A'로 정해지고 [i + 'A' for i in first]가 실행이되어 하나의 리스트를 만들고,

 다음 'B'가 j가되어 [i+'B' for i in first]의 리스트를 하나 만드는 것입니다.

그리고 각각의 리스트는 리스트안에 들어가게 됩니다.

 

다음 포스트는 split과 join에 대해 알아보겠습니다.

 

반응형

'기본소양 > Pythonic CODE' 카테고리의 다른 글

[Pythonic CODE] 6. Collections  (0) 2021.01.24
[Pythonic CODE] 5. Asterisk ( * )  (0) 2021.01.24
[Pythonic CODE] 4. Lambda & Map & Reduce  (0) 2021.01.24
[Pythonic CODE] 3. Enumerate & Zip  (0) 2021.01.24
[Pythonic CODE] 2. Split & Join  (0) 2021.01.24

댓글