[python] List Comprehension in python

chaemin·2022년 11월 8일

Python

목록 보기
2/6

파이썬 공부를 할 겸 프로그래머스 코딩테스트 문제를 풀고 있다.
문제를 풀고 다른 사람 풀이를 구경하는 재미가 쏠쏠한데,
정말 거의 모든 문제에서 파이썬이 이 정도라고? 하고 놀라는 중...

그 중 하나가 바로 List Comprehension이었다.


List Comprehension


기본 구조

[ expression for item in a list {if condition_is_met} ]

expression
: 존재하는 리스트의 각 요소에 대한 연산을 하여 새로운 값을 반환하기 위한 표현식이다.

최대 두 개의 표현식만 사용할 수 있다.



예제


[문제1]
정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요.
(배열 두 배 만들기)


[풀이]

def solution(numbers):
	return [num*2 for num in. numbers]

리스트 안에서 반복문을 사용한다?
정말 상상하기 힘든 방법이었다(...)

List Comprehension은 반복문과 유사하다.
리스트와 리스트의 반복을 하나의 라인으로 만들 수 있어,
따로 반복 구조를 만들지 않아도 된다.



[문제2]
문자열 배열 strlist가 매개변수로 주어집니다. strlist 각 원소의 길이를 담은 배열을 retrun하도록 solution 함수를 완성해주세요.


[solution]


def solution(strlist):
	return [len(word) for word in strlist]

strlist에 저장된 단어를 하나씩 꺼내어 그 길이들을 리스트로 반환한다.


map과 List Comprehension


map이란?

map(변환 함수, 순회 가능한 데이터)

map과 list comprehension은 같이 바꿔서 사용할 수 있다.


예제 - map과 list comprehension 치환

def solution(strlist):
    return [len(word) for word in strlist]

def solution_map(strlist):
    return list(map(len, strlist))
    // 배열의 각 단어를 읽어와 길이를 구하고 리스트로 반환


출처: https://learnpython.com/blog/python-lists-list-comprehension-new-year-resolutions/

profile
창원대학교 컴퓨터공학과 대학원생

0개의 댓글