리스트의 요소를 특정 숫자와의 비교 결과에 따라 대체해야 하는 경우, 간단한 반복문(for 루프)을 사용하면 손쉽게 해결할 수 있습니다. 이 방식은 원본 리스트의 각 요소를 기준 값과 하나씩 비교한 뒤, 조건에 맞는 새로운 값을 결과 리스트에 추가하는 원리로 동작합니다.
예제 코드
아래는 실제 구현 예시입니다.
my_list = [32, 37, 44, 38, 92, 61, 28, 92, 20]
print("The list is :")
print(my_list)
my_key = 32
print("The key is ")
print(my_key)
low, high = 2, 9
my_result = []
for ele in my_list:
if ele > my_key:
my_result.append(high)
else:
my_result.append(low)
print("The resultant list is :")
print(my_result)실행 결과
The list is : [32, 37, 44, 38, 92, 61, 28, 92, 20] The key is 32 The resultant list is : [2, 9, 9, 9, 9, 9, 2, 9, 2]
코드 설명
정수로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
비교 기준이 될 키(key) 값을 정의하고 화면에 표시합니다.
'low'와 'high' 두 변수에 대체할 값을 각각 할당합니다.
결과를 저장할 빈 리스트를 생성합니다.
원본 리스트를 순회하면서 각 요소를 키 값과 비교합니다.
요소가 키보다 크면 'high' 변수의 값을 결과 리스트에 추가(append)합니다.
그렇지 않은 경우에는 'low' 변수의 값을 결과 리스트에 추가합니다.
최종적으로 완성된 결과 리스트가 콘솔에 출력됩니다.
참고: 리스트 컴프리헨션으로 더 간결하게 작성하기
위 코드는 파이썬의 리스트 컴프리헨션(list comprehension)을 활용하면 한 줄로 더 간결하게 표현할 수 있습니다.
my_result = [high if ele > my_key else low for ele in my_list]
조건부 표현식을 사용하면 불필요한 임시 리스트 선언과 append 호출 없이 동일한 결과를 얻을 수 있어, 코드 가독성과 효율성이 모두 향상됩니다.