Python에서 튜플로 이루어진 리스트에서 특정 키에 해당하는 값을 추출해야 할 때가 있습니다. 이럴 때 dict 메서드, get 메서드, 그리고 리스트 컴프리헨션(list comprehension)을 함께 활용하면 간결하고 효율적으로 처리할 수 있습니다.
핵심 개념 정리
리스트 컴프리헨션은 리스트를 반복하면서 연산을 수행하는 과정을 한 줄의 코드로 작성할 수 있게 해주는 축약 문법입니다. 리스트는 정수, 실수, 문자열 등 서로 다른 자료형의 데이터를 하나의 자료구조에 저장할 수 있습니다.
튜플 리스트(list of tuple)는 말 그대로 여러 개의 튜플이 하나의 리스트 안에 감싸져 있는 형태를 의미합니다.
dict 메서드는 딕셔너리를 생성하는 함수입니다. 딕셔너리는 키(key)와 값(value)이 한 쌍을 이루며 저장되고, 순서와 무관하게 인덱싱으로 접근할 수 있는 자료구조입니다.
get 메서드는 딕셔너리에 특정 키가 존재할 경우 해당 키의 값을 반환합니다. 만약 키가 존재하지 않으면 기본값(default)을 지정하여 에러 없이 처리할 수 있다는 장점이 있습니다.
예제 코드
my_list_1 = [('Jane', 11), ('Nick', 12), ('Will', 33), ('Paul', 14)]
my_list_2 = ['Nick', 'Paul']
print("튜플 리스트 : ")
print(my_list_1)
print("두 번째 리스트 : ")
print(my_list_2)
temp_val = dict(my_list_1)
my_result = [temp_val.get(i, 0) for i in my_list_2]
print("선택한 키들의 값 : ")
print(my_result)실행 결과
튜플 리스트 :
[('Jane', 11), ('Nick', 12), ('Will', 33), ('Paul', 14)]
두 번째 리스트 :
['Nick', 'Paul']
선택한 키들의 값 :
[12, 14]코드 설명
- 이름과 숫자로 구성된 튜플들을 담은 리스트를 정의하고 콘솔에 출력합니다.
- 찾고자 하는 키(이름)들이 담긴 두 번째 리스트를 정의합니다.
dict()함수를 사용해 튜플 리스트를 딕셔너리로 변환합니다. 이때 각 튜플의 첫 번째 요소가 키, 두 번째 요소가 값이 됩니다.- 리스트 컴프리헨션을 통해 두 번째 리스트의 각 요소를 반복하면서
get메서드로 해당 키의 값을 조회합니다. - 조회된 결과 값들은 새로운 변수
my_result에 리스트 형태로 저장됩니다. - 최종 결과를 콘솔에 출력합니다.
추가 팁
temp_val.get(i, 0)에서 두 번째 인자인 0은 해당 키가 딕셔너리에 존재하지 않을 때 반환되는 기본값입니다. 예를 들어 my_list_2에 'Jane' 대신 'Tom'이라는 이름이 포함되어 있다면, 결과에는 KeyError 대신 0이 출력됩니다. 이처럼 get 메서드를 활용하면 존재하지 않는 키로 인한 프로그램 중단을 방지할 수 있습니다.