#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목22년도 기출문제의 dictionary 내용 관련 질문입니다2023-01-06 21:48
작성자


22년도 1학기 00반 기말고사 7번 문제(removeCustomerByName)은 입력된 고객 이름(value)가 dictionary에 있는지 확인하고, 고객 이름(value)가 존재할 시 해당 고객 이름이 포함된 정보(key, value)를 dictionary에서 제거하고 수정된 dictionary를 return하는 문제입니다 


이 때, 저는 고객이름이 dictionary의 value와 일치하는 부분을 찾은 후 self.db.pop을 통해 해당 정보를 바로 삭제했고

예시답안은 dictionary의 value와 고객 이름이 일치하는 부분의 key를 따로 뽑아서 리스트를 만드는 과정을 거친 후

해당 key에 해당하는 부분을 삭제하였습니다


이 때 제 코드는 정상 작동하지 않고 예시답안은 정상 작동함을 확인할 수 있었는데

제 답안처럼 바로 정보를 삭제하는 행위가 왜 안되는 것인지가 궁금합니다



아래 코드가 제가 작성한 코드이고

    def removeCustomerByName (self, custname):
        numbcount = 0
        for key, value in self.db.items():
            if value ==custname:
                self.db.pop(key)
                numbcount = numbcount+1
        if numbcount==0:
            return -1
        else:
            return self.db

아래 코드가 예시답안의 코드입니다

def removeCustomerByName(self, customerName):
        count = 0
        keys = []
        for key, value in self.db.items():
            if value == customerName:
                keys.append(key)
                count += 1

        if count != 0:
            for item in keys:
                self.db.pop(item)
            return self.db
        else:
            return -1
 





댓글
이전class 기출 질문2023-01-08
다음class 생성자에 관하여 질문이 있습니다.2023-01-06