딕셔너리 여러 개로 이루어진 리스트에서 특정 키의 값을 해당 리스트의 K번째 인덱스 값으로 교체해야 할 때는 isinstance 메서드와 간단한 반복문을 활용하면 됩니다. 이 방식은 값의 자료형을 먼저 확인한 뒤 조건에 맞는 경우에만 교체를 수행하기 때문에 안전하게 동작합니다.
예제
다음은 실제 구현 과정을 보여주는 예시입니다.
my_list = [{'python': [5, 7, 9, 1], 'is': 8, 'good': 10},
{'python': 1, 'for': 10, 'fun': 9},
{'cool': 3, 'python': [7, 3, 9, 1]}]
print("The list is :")
print(my_list)
K = 2
print("The value of K is")
print(K)
my_key = "python"
for index in my_list:
if isinstance(index[my_key], list):
index[my_key] = index[my_key][K]
print("The result is :")
print(my_list)
출력 결과
The list is :
[{'python': [5, 7, 9, 1], 'is': 8, 'good': 10}, {'python': 1, 'fun': 9, 'for': 10}, {'python': [7, 3, 9, 1], 'cool': 3}]
The value of K is
2
The result is :
[{'python': 9, 'is': 8, 'good': 10}, {'python': 1, 'fun': 9, 'for': 10}, {'python': 9, 'cool': 3}]
설명
딕셔너리 여러 개로 구성된 리스트를 정의한 뒤 콘솔에 출력합니다.
인덱스로 사용할 K 값을 정의하고 콘솔에 출력합니다.
값을 교체할 대상 키(my_key)를 지정합니다.
리스트를 순회하면서
isinstance메서드를 사용해 해당 키의 값이 리스트 자료형인지 검사합니다.값이 리스트인 경우에만 해당 값을 K번째 인덱스의 요소로 대체합니다. 두 번째 딕셔너리처럼 값이 단일 정수라면 원래 값이 그대로 유지됩니다.
교체가 완료된 최종 결과가 콘솔에 출력됩니다.
참고: 모든 딕셔너리에 해당 키가 존재한다는 보장이 없다면 index.get(my_key) 형태로 접근하거나 if my_key in index 조건을 함께 사용하면 KeyError 발생을 방지할 수 있습니다.