List Comprehension이란 새로운 리스트를 만들 때 사용할 수 있는 간단한 표현식.
For문과 if문이 들어간 간단한 코드를 표현한 식이다.
List comprehension은
[ 표현식 for 원소 in 반복 가능한 객체 ]
[ 표현식 for 원소 in 반복 가능한 객체 if문 ]
이렇게 표현할 수 있다.
예를 들어, 1부터 10까지 숫자를 리스트에 담는다면 다음과 같이 작성할 수 있다.
new_list = []
for x in range(1,11):
new_list.append(x)
print(new_list)
new_list = [ x for x in range(1, 11) ]
print(new_list)
odd_list = [ x for x in range(1, 11) if x%2 == 1 ]
print(odd_list)
출력할 값 for 반복문 if 조건문 으로 생각하면 편하다.다음과 같은 도시목록의 리스트가 주어졌을때, 도시이름이 S로 시작하지 않는 도시만 리스트로 만들 때 리스트 컴프리헨션을 사용하여 함수를 작성하기
cities = ["Tokyo", "Shanghai", "Jakarta", "Seoul", "Guangzhou", "Beijing", "Karachi", "Shenzhen", "Delhi" ]
newCities = [cities[i] for i in range(len(cities)) if cities[i][0] == 'S']
print(newCities)
다음과 같은 도시, 인구수가 튜플의 리스트로 주어졌을때, 키가 도시, 값이 인구수인 딕셔너리를 딕셔너리 컴프리헨션을 사용한 함수를 작성하기.
population_of_city = [(‘Tokyo', 36923000), (‘Shanghai', 34000000), (‘Jakarta', 30000000), (‘Seoul', 25514000), (‘Guangzhou', 25000000), (‘Beijing', 24900000), (‘Karachi', 24300000 ), ( ‘Shenzhen', 23300000), (‘Delhi', 21753486) ]
newDict = {population_of_city[i][0] : population_of_city[i][1] for i in range(len(population_of_city)) }
print(newDict)