카테고리 없음

[python] 딕셔너리 pop + 순차적으로 pop하기

3pie 2024. 1. 3. 16:25

파이썬에서 제공하는 기본 딕셔너리는 처음들어온 순서대로 pop하는기능을 제공하고 있지 않다. 

그래서 아래와같은 방법으로 활용하면 딕셔너리를 추가된 순서대로 pop하는게 가능하다 

from collections import OrderedDict

class OrderedSetDict(OrderedDict):
    def pop_first(self):
        if self:
            print(f'self : {self}')
            first_key = next(iter(self))
            first_value = self.pop(first_key)
            return first_key, first_value
        else:
            # 딕셔너리가 비어있을 경우 예외 처리 또는 기본값 반환 등을 수행할 수 있습니다.
            return None, None

# OrderedSetDict를 사용하여 처음 추가된 항목 제거
my_ordered_dict = OrderedSetDict()
my_ordered_dict['a'] = 1
my_ordered_dict['b'] = 2
my_ordered_dict['c'] = 3


popped_key, popped_value = my_ordered_dict.pop_first()
print(f'Popped Key: {popped_key}, Popped Value: {popped_value}')