여태까지 dict에서 특정 key들을 제외한 나머지 key들의 값을 뽑아낼 때 이렇게 썼었는데


# d : key들을 추출할 dict

# s : 제외할 key들의 set

keys = (key for key in d.keys() if not key in s)


dict_keys는 set operator의 operand가 될 수 있다는 사실을 이제 알음

그래서 밑처럼 써도 됨

d나 s의 key들이 겁나게 많으면 key 하나 뽑을 때마다 in 검사하는 것보다 처음부터 뽑아야 할 key들을 구해놓는게 빠를 듯


keys = (key for key in d.keys() - s)


생각해보니 dict의 key들과 set의 item들 사이에는 hashable하고 unique해야 한다는 공통점이 있으니

상호 연산이 가능해야 아다리가 맞는 것 같음 ㅋㅋ


dict_keys와 달리 dict_values는 이런 게 불가능한데

dict의 value들은 hashable하거나 unique할 필요가 없으니 당연한 것 같고



파이썬 쓴지 몇년 지났는데 이제야 알게되다니 ㅠㅠ