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

숫자와의 비교를 기반으로 리스트 요소를 대체하는 Python 프로그램

리스트의 요소를 특정 숫자와의 비교 결과에 따라 대체해야 하는 경우, 간단한 반복문(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 호출 없이 동일한 결과를 얻을 수 있어, 코드 가독성과 효율성이 모두 향상됩니다.