Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 반복하는 동안 사전에서 항목 삭제

<시간/>

파이썬 사전은 정렬되지 않고 변경 가능하며 색인이 생성되는 모음입니다. 키와 값이 있으며 각 항목은 키를 사용하여 참조됩니다. 이 기사에서는 사전에서 항목을 삭제하는 방법을 살펴보겠습니다.

키와 함께 del 사용

이 접근 방식에서는 삭제해야 하는 키 값을 캡처합니다. del 함수를 적용하면 해당 키에 대한 키 값 쌍이 삭제됩니다.

예시

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with value in 2,3.
to_del = [key for key in ADict if key in(2,3)]

# Delete keys
for key in to_del: del ADict[key]

# New Dictionary
print(ADict)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

{1: 'Mon', 4: 'Thu', 5: 'Fri'}

키로 목록 사용

사전에서 키를 포함하는 목록을 만들고 조건식을 사용하여 삭제에 사용할 키를 선택할 수도 있습니다. 아래 예에서는 나눗셈의 나머지를 0과 같은 2와 비교하여 짝수 값을 가진 키만 고려했습니다.

예시

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

# Get keys with even value
for key in list(ADict):
if (key%2) == 0:
del ADict[key]

# New Dictionary
print(ADict)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

{1: 'Mon', 3: 'Wed', 5: 'Fri'}

항목을 사용하여 삭제

키 대신 사전의 항목을 사용하여 값을 삭제할 수도 있습니다. 그러나 항목을 선택한 후에는 키를 간접적으로 사용하여 삭제할 항목을 선택해야 합니다.

예시

# Given dictionary
ADict = {1: 'Mon', 2: 'Tue', 3: 'Wed',4:'Thu',5:'Fri'}

NewDict = []
# Get keys with even value
for key,val in ADict.items():
if val in('Tue','Fri'):
NewDict.append(key)

for i in NewDict:
del ADict[i]

# New Dictionary
print(ADict)

출력

위의 코드를 실행하면 다음과 같은 결과가 나옵니다. -

{1: 'Mon', 3: 'Wed', 4: 'Thu'}