본문 바로가기
Python

[Python] Dictionary Filter

by bryan.oh 2019. 11. 5.
반응형

Dictionary Filter

 

score_dict = {
    'sam':23,
    'john':30,
    'mathew':29,
    'riti':27,
    'aadi':31,
    'sachin':28
}

 

이런 dictionary 가 있을 때 

30점이 넘는 사람만 가지는 dictionary 를 얻고 싶다면,

기본 적으로 for 문을 이용해서 새로운 dictionary 를 만들면

over_30_dict = {}
for key in score_dict.keys() :

    if score_dict.get(key) >= 30 :
        over_30_dict[key] = score_dict.get(key)

이런식이겠죠?

좀 더 간편한 방법을 써보면,

over_30_dict = dict(filter(lambda elem:elem[1]>=30, score_dict.items()))

이렇게 한줄로 쓸수 있습니다.

score_dict.items() 에서
lambda elem:elem[1]>=30 각요소의 두번째값이 30 이상인것들만
filter() : 필터을 걸어서

dict() : 새로운 dictionary를 만듬.

 

dictionary 외에도 활용할 수 있겠네요.

 

 

2019/02/15 - [Python] - [python] Dictionary 의 특정 값의 sum, max, min 값 가져오기

2019/02/14 - [Python] - [python]list dictionary sort multiple (여러 키로 정렬시키기)

2019/02/13 - [Python] - python dictionary 에서 max 값 가져오기 (key or value)

728x90
반응형

댓글