본문 바로가기

카테고리 없음

[Python] Set, Dictionary Comprehension 문법

setdictionary 자료 구조도 list처럼 그들만의 comprehension 문법이 있습니다. dictionary는 key와 value의 짝으로 이루어진 자료 구조고, set은 key로만 이루어진 자료 구조로 둘 다 { }로 정의되죠. comprehension 문법도 [ ] 대신 { }을 쓰면 됩니다.

cities = {'Seoul':1, 'Busan':2, 'Daegu':3} # swap key and values cities_rank_dict = {rank:name for name, rank in chile_ranks.items()} # make 'set' for name lengths cities_len_set = {len(name) for name in rank_dict.values()} print(cities_rank_dict) print(cities_len_set) >>> {1: 'Seoul', 2: 'Busan', 3: 'Daegu'} {5}

dictionary의 key와 value를 바꾸는 동작을 comprehension으로 표현한 예제와 value의 길이를 set으로 집어넣는 comprehension입니다. items()는 dictionary에 있는 key와 value들을 (key, value) tuple을 list-like object(python 2.7 버전에서는 list, 3.5 버전에서는 dict_item object)로 만드는 역할을 하고,values()는 value들만 모아 list-like 형태로 만들어주는 역할을 합니다. dictionary에서 value 값을 지정하지 않고 key만 저장하면 곧 set이 되는데, 위 예제에서는 그 set에 value들의 길이를 저장하도록 했습니다. set은 순서를 뒤섞어 버리기 때문에 입력된 순서대로 출력하지 않습니다.