파이썬 ) list comprehension

김건우·2020년 7월 23일
0

파이썬 문법

목록 보기
3/5
post-custom-banner

1. 정의

새로운 리스트를 만들 때 사용할 수 있는 간단한 표현식

2. 활용 예시

1부터 10까지 담겨 있는 리스트를 만들어야 할 때, 지금까지 사용했던 방법

result_list=[]
for i in range(1,11)
	result_list.append(i)
print(result_list)
#출력: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

list comprehension을 사용한 방법

result_list = [i for i in range(1,11)]
  • [표현식 for 요소 in 반복 가능한 객체 if문]
    조건문은 필요할 경우 붙여서 사용할 수 있다.

3. list comprehension의 장/단점

1. 장점

  • 코드가 간결하다.
  • 데이터베이스를 조회하여 리스트를 만들 때 만히 사용되므로, 새로운 배열을 만들때 특히 유용하다.
  • 반복문을 활용하여 새로운 배열을 만드는것 보다 처리속도가 빠르다.

2. 단점

  • 복잡한 표현이 작성될 수록 가독성이 떨어진다.

3. 정리

pyguide는 상황이 간단한 경우에 사용하기를 권장하고 있다.

4. 문제풀기

4-1) 다음 도시목록의 리스트에서 도시이름이 'S'로 시작하지 않는 도시만 리스트 컴프리헨션을 사용하여 함수를 작성하기

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

My solution

def list_comprehension(cities):
	list_cities = [i for i in cities if i[0] != "S"
    	return list_cities 

4-2) 다음 도시와 인구수가 튜플의 리스트로 있을 때, 키가 도시, 값이 인구수인 딕셔너리를 딕셔너리 컴프리헨션을 사용하여 작성하기.

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

My solution

def dict_comprehension(data):
	dict_data = {key:value for key,value in data}
    	return dict_data
profile
꾸준하게 공부하기
post-custom-banner

0개의 댓글