List Comprehension

Junyoung Kim·2022년 1월 5일
0

Python+

목록 보기
1/7

리스트 컴프리헨션이란 새로운 리스트를 만들 때 사용할 수 있는 간단한 표현식으로 리스트와 마찬가지로 대괄호 [, ] 를 사용하여 작성한다.
표현식으로 시작하여 for 루프로 끝나는 형식을 갖추고, for문 뒤에 if문을 추가하여 조건문을 추가할 수도 있다.


다음과 같은 형식으로 나타낼 수 있다.
[ 표현식 for 원소 in 반복 가능한 객체 ]
[ 표현식 for 원소 in 반복 가능한 객체 if문 ]

1부터 10까지의 리스트를 만든다고 할 때, 리스트 컴프리헨션을 이용하면 다음과 같다.

new_list = [ x for x in range(1, 11) ]
print(new_list)

다음은 if문을 사용한 예시다. 주어진 리스트에서 홀수만 따로 빼서 odd_numbers 리스트에 저장한다고 할 때, for 루프를 사용하면 다음과 같다.

odd_numbers = [ ]
for element in range(1,11):
    if (element % 2) == 1:
        odd_numbers.append(element)

리스트 컴프리헨션으로는 다음과 같이 표현할 수 있다.

list_comprehension = [ element for element in range(1,11) if (element % 2) == 1 ]
print(list_comprehension)

리스트 컴프리헨션으로 작성한 코드는 간결하고 데이터베이스를 조회하여 리스트로 만들 때 편리하고,성능개선을 하기 위해서 리스트 컴프리헨션을 사용하기도 한다.
그러나 모든 상황에 리스트 컴프리헨션이 만능은 아니므로 상황에 맞게 사용하는 것이 중요하겠다.

Assignment

1.다음과 같은 도시목록의 리스트가 주어졌을때, 도시이름이 S로 시작하지 않는 도시만 리스트로 만들 때 리스트 컴프리헨션을 사용하여 함수를 작성해 보세요.

cities = ["Tokyo", "Shanghai", "Jakarta", "Seoul", "Guangzhou", "Beijing", "Karachi", "Shenzhen", "Delhi" ]



작성한 코드

실행 결과



2.다음과 같은 도시, 인구수가 튜플의 리스트로 주어졌을때, 키가 도시, 값이 인구수인 딕셔너리를 딕셔너리 컴프리헨션을 사용한 함수를 작성해 보세요.

population_of_city = [(‘Tokyo', 36923000), (‘Shanghai', 34000000), (‘Jakarta', 30000000), (‘Seoul', 25514000), (‘Guangzhou', 25000000), (‘Beijing', 24900000), (‘Karachi', 24300000 ), ( ‘Shenzhen', 23300000), (‘Delhi', 21753486) ]



작성한 코드

실행 결과

0개의 댓글