new_list = [ x for x in range(1, 11) ]
print(new_list)
a = [i * j for j in range(2, 10)
for i in range(1, 10)]
1. 도시이름이 S로 시작하지 않는 도시만 리스트로 만들 때 리스트 컴프리헨션을 사용하여 함수를 작성해 보세요.
cities = ["Tokyo", "Shanghai", "Jakarta", "Seoul", "Guangzhou", "Beijing", "Karachi", "Shenzhen", "Delhi" ]
new_cities = [i for i in cities if i[0] != "S" and i[0] != "s"]
# 실행 결과
['Tokyo', 'Jakarta', 'Guangzhou', 'Beijing', 'Karachi', 'Delhi']
2. 다음과 같은 도시, 인구수가 튜플의 리스트로 주어졌을때, 키가 도시, 값이 인구수인 딕셔너리를 딕셔너리 컴프리헨션을 사용한 함수를 작성해 보세요.
population_of_city = [(‘Tokyo', 36923000), (‘Shanghai', 34000000), (‘Jakarta', 30000000), (‘Seoul', 25514000), (‘Guangzhou', 25000000), (‘Beijing', 24900000), (‘Karachi', 24300000 ), ( ‘Shenzhen', 23300000), (‘Delhi', 21753486) ]
population_of_city_dict = \
{key: value for key, value in dict(zip(
[key[0] for key in population_of_city],
[key[1] for key in population_of_city]))
.items()}
# 실행 결과
{'Tokyo': 36923000, 'Shanghai': 34000000, 'Jakarta': 30000000, 'Seoul': 25514000, 'Guangzhou': 25000000, 'Beijing': 24900000, 'Karachi': 24300000, 'Shenzhen': 23300000, 'Delhi': 21753486}
이건 빌드업이 좀 필요했는데, 딕셔너리 표현식이 결국은 딕셔너리를 기반으로 작동되었다.
그래서, 키가 되는 리스크와, 값이 되는 리스트를 만들어주는 작업을 먼저하여, 딕셔너리 표현식에 대체하였다.
파이썬 코드 스타일 가이드
https://google.github.io/styleguide/pyguide#273-cons