Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python 딕셔너리에서 특정 키-값 쌍만 추출하는 방법 (딕셔너리 컴프리헨션)

딕셔너리 컴프리헨션으로 키-값 쌍 추출하기

Python에서 딕셔너리 객체의 일부 키-값 쌍만 골라 새로운 딕셔너리를 만들 때는 딕셔너리 컴프리헨션(dictionary comprehension) 기법을 사용하는 것이 가장 간결하고 효율적입니다.

예제 데이터 준비

학생 이름과 백분율 점수가 담긴 딕셔너리 객체가 있다고 가정해 보겠습니다.

>>> marks = {
    'Ravi': 45.23,
    'Amar': 62.78,
    'Ishan': 20.55,
    'Hema': 67.20,
    'Balu': 90.75
}

조건에 맞는 항목만 추출하기

백분율이 50을 초과하는 학생, 즉 합격한 학생들의 이름과 점수만 담은 새로운 딕셔너리를 만들어 보겠습니다.

>>> passed = { key: value for key, value in marks.items() if value > 50 }
>>> passed
{'Amar': 62.78, 'Hema': 67.2, 'Balu': 90.75}

marks.items()는 딕셔너리의 모든 키-값 쌍을 반환하며, if value > 50 조건식을 통과한 항목만 새 딕셔너리에 포함됩니다.

특정 키 목록에 해당하는 부분 집합 추출하기

조건식 대신 원하는 키의 집합을 미리 정의해 두고, 그에 해당하는 항목만 추출할 수도 있습니다.

>>> names = {'Amar', 'Hema', 'Balu'}
>>> lst = { key: value for key, value in marks.items() if key in names }
>>> lst
{'Amar': 62.78, 'Hema': 67.2, 'Balu': 90.75}

이처럼 if key in names 조건을 사용하면 지정된 이름에 해당하는 학생 데이터만 손쉽게 필터링할 수 있습니다.

정리

딕셔너리 컴프리헨션은 {키: 값 for 키, 값 in 딕셔너리.items() if 조건} 형태로 작성합니다. 값 기준 필터링과 키 기준 필터링 모두 한 줄의 코드로 처리할 수 있어, 일반적인 for 반복문을 사용하는 방식보다 가독성과 실행 성능 면에서 유리합니다.