리스트의 요소들이 특정 값보다 작지 않도록 하한값(최소 기준값)을 설정해야 하는 경우가 있습니다. 파이썬에서는 리스트 컴프리헨션(list comprehension)에 조건식을 넣어 이 문제를 아주 간단하게 해결할 수 있습니다. 기준값보다 작은 요소는 자동으로 해당 기준값으로 대체됩니다.
아래는 실제 구현 예시입니다.
예제
my_list = [51, 71, 86, 21, 11, 35, 67]
print("The list is :")
print(my_list)
K = 50
print("The value of K is ")
print(K)
my_result = [element if element >= K else K for element in my_list]
print("The result is :")
print(my_result)출력 결과
The list is : [51, 71, 86, 21, 11, 35, 67] The value of K is 50 The result is : [51, 71, 86, 50, 50, 50, 67]
코드 설명
정수로 이루어진 리스트를 정의하고 콘솔에 출력합니다.
하한값으로 사용할 K 값을 정의한 뒤 콘솔에 출력합니다.
리스트 컴프리헨션을 사용해 리스트의 각 요소를 순회하며, 해당 요소가 K보다 크거나 같은지 검사합니다.
조건을 만족하면 원래 요소 값을 그대로 저장하고, 만족하지 않으면 K 값을 대신 저장합니다.
결과 리스트는 변수 my_result에 할당됩니다.
최종 결과를 콘솔에 출력합니다. 위 예제에서는 21, 11, 35가 모두 50으로 대체된 것을 확인할 수 있습니다.
대안: max() 함수 활용하기
동일한 결과는 내장 함수 max()를 사용하면 더욱 간결하게 얻을 수 있습니다.
my_result = [max(element, K) for element in my_list]
max(element, K)는 두 값 중 큰 값을 반환하므로, K보다 작은 요소는 자동으로 K로 대체됩니다. 조건문 없이 한 줄로 처리할 수 있어 코드가 짧아지고 가독성도 좋아집니다.