c언어도 아니고 Python을 쓰는데
그저그런 평범한 for문은 절대 사용하기가 싫을때
꼭 이녀석을 사용해주어야 한다.
바로 List Comprehension (리스트컴프리헨션/지능형리스트) 요놈이다.
특정 시퀀스를 사용하여 새로운 리스트를 만들 때 사용하는 녀석인데,
대괄호 [] 안에 반복하고자 하는 item을
[func(item) for item in items] 이와 같은 형태로 작성해주면 된다.
words = ['I', 'love', 'you']
word_length = []
for word in words:
word_length.append(len(word))
위의 예시는 평범한 for문을 사용하여 words 리스트 요소들의 길이를 갖는 word_length 리스트를 만드는 코드이다.
위 예시를 지능형 리스트를 사용하면 아래와 같다.
words = ['I', 'love', 'you']
word_length = [len(word) for word in words]
빈 리스트 정의 라인 포함 3줄의 코드가 한줄로 표현이 가능해진다.
위 예시처럼 리스트,튜플과 같은 시퀀스형의 요소를 가공하여 새로운 리스트를 만들어야 할 때
지능형 리스트는 아주 Pythonic하게 원하는 리스트를 생성해주는 구문이다.
Python3 이상부터는 어떠한 성능하락이나 메모리 누수도 없으므로 자유롭게 맘 껏 사용해도 된다!!
Python을 계속 이용할 유저라면 꼭 이 구문에 익숙해지는 것 추천ㅎ
'Python' 카테고리의 다른 글
[Python] logging을 알아보자! (2) | 2023.03.19 |
---|---|
Python 상속이 성능에 영향이 있을까?? (4) | 2023.03.15 |