comprehensions

정현석·2020년 10월 28일

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

cities = ["Tokyo", "Shanghai", "Jakarta", "Seoul", "Guangzhou", "Beijing", "Karachi", "Shenzhen", "Delhi" ]
new_list = [ x for x in range(1, 11) ]
print(new_list) # 이렇게 할 경우 1부터 10까지의 리스트가 만들어진다.

1번 문제 
cities = ["Tokyo","Shanghai" ,"Jakarta","Seoul","Guangzhou","Beijing","Karachi","Shenzhen","Delhi" ]

for i in cities :
    if i.startswith('S') :
        print (i) # for 문으로 표현

list_comprehension = [i for i in cities if i.startswith('S')] # list comprehension

출력값 
Shanghai
Seoul
Shenzhen

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


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

for each_key, each_velue in population_of_city:
    city ={}
    city[each_key] = each_velue
    print(city) # 일반 for 문
    
    
city = [{i[0] : i[1]} for i in population_of_city] 
# i값은 for문을 사용할 때 자동으로 등록 
# diction comprehension
출력값
[{'Tokyo': 36923000}, {'Shangai': 34000000}, {'Jakarta': 30000000}, {'Seoul': 25514000}, {'Guangzhou': 25000000}, {'Beijing': 24900000}, {'Karachi': 24300000}, {'Shenzhen': 23300000}, {'Delhi': 21753486}]
profile
기록하는 벨로그

0개의 댓글