앞서 리스트 컴프리헨션을 이용하여 여러가지 리스트 자료구조를 만들어보았다.
딕셔너리도 컴프리헨션으로 간단하게 생성 할 수 있다.
수식은 다음과 같다.
{키 : 값 for 표현식 in 순회가능객체(list, set, range() 등) }
if문을 이용하여 값을 걸러내고 싶다면 다음과 같이 사용한다.
{키 : 값 for 표현식 in 순회가능객체(list, set, range() 등) if (앞의 표현식을 이용한 조건) }
수식이 너무 어려워 보이니 예제를 살펴보자.
예) 먼저 키가 정수이고, 값이 정수의 제곱인 딕셔너리를 만들어보자.
편의상 0~4까지만 해보자.
결과값은 아래와 같이 출력될 것이다.
결과 딕셔너리 = {0:0, 1:1, 2:4, 3:9, 4:16}
1) for문 이용
2) 딕셔너리 컴프리헨션 이용
위의 두가지 코드는 동일한 작업을 수행한다.
for문을 이용한것보다 딕셔너리를 이용한것이 코드가 조금 줄었다.
깔끔하게 보인다고 하고 싶지만, 예제가 단순해서 for문도 깔끔하다.
조금 차이를 느껴보게 하기 위해서
이 결과에서 값이 10 이하인 딕셔너리만 생성해보자.
if문을 넣어 다음과 같이 바꿀 수 있다.
1) for문 이용
2) 딕셔너리 컴프리헨션 이용
조건이 추가될때마다 for문을 이용한 딕셔너리 생성은 복잡해진다.
컴프리헨션을 사용하면 훨씬 간결하게 코드를 작성할 수 있다.
반응형
'IT' 카테고리의 다른 글
[파이썬 기초] 함수 (0) | 2019.04.11 |
---|---|
[파이썬 기초] 셋 컴프리헨션 (0) | 2019.04.10 |
[파이썬 기초] 리스트 컴프리헨션(comprehension) (0) | 2019.04.04 |
[파이썬 기초] range() 함수로 여러가지 숫자 리스트 만들기 (0) | 2019.04.03 |
[파이썬 기초] 여러 시퀀스를 같이 반복(순회)하기 - zip() (0) | 2019.04.02 |