pbj0812의 코딩 일기

[PYTHON] 두 개의 dict 내 구성요소 일치여부를 판단하기 본문

ComputerLanguage_Program/PYTHON

[PYTHON] 두 개의 dict 내 구성요소 일치여부를 판단하기

pbj0812 2021. 8. 29. 13:18

0. 목표 

 - 두 개의 dict 일치여부를 판단하기

데분방 대화 중에서...

1. 실습

 1) 데이터 생성

  - 데이터는 같으나 순서가 다름

obj1 = {'title':'abc', 'people':['Bob', 'Lee'], 'people2':('Bob', 'Lee')}
obj2 = {'title':'abc', 'people':['Lee', 'Bob'], 'people2':['Lee', 'Bob']}

 2) 일치여부 확인

  - False

obj1 == obj2

 3) 각 dict 의 key 와 values 를 정렬하여 출력하는 함수 제작

  - 타입이 str 이었을때는 길이가 스펠링의 길이이기 때문에 예외조항 걸어둠(추가적인 조항이 필요할 수 있음)

def dict_order(inp):
    tmp = []
    tmp_key = inp.keys()
    tmp_key = sorted(list(tmp_key))
    tmp_values = []
    
    for i in tmp_key:
        if type(inp[i]) == str:
            tmp_values.append(inp[i])
        else:
            tmp2 = sorted(list(inp[i]))
            tmp_values.append(tmp2)
    return tmp_key, tmp_values

 4) 두 개의 dict 의 key 와 values 를 각각 비교

def dict_compare(inp1, inp2):
    inp1_key, inp1_values = dict_order(inp1)
    inp2_key, inp2_values = dict_order(inp2)
    
    if inp1_key == inp2_key:
        a = 1
    else:
        a = 0
        
    if inp1_values == inp2_values:
        b = 1
    else:
        b = 0
        
    c = a + b
    
    if c == 2:
        return True
    else:
        return False

 5) 결과

  - True

dict_compare(obj1, obj2)
Comments