튜플에서 최댓값과 최솟값을 제외한 나머지 요소에 특정 값을 할당해야 하는 경우, max 메서드, min 메서드, tuple 메서드와 반복문을 함께 사용하면 간단하게 해결할 수 있습니다.
max 메서드는 반복 가능한(iterable) 객체가 가진 모든 요소 중 최댓값을 반환하며, min 메서드는 최솟값을 반환합니다.
tuple 메서드는 주어진 값이나 반복 가능한 객체를 튜플(tuple) 타입으로 변환하는 역할을 합니다.
아래는 이를 구현한 예시입니다.
예제 코드
my_tuple = (25, 56, 78, 91, 23, 11, 0, 99, 32, 10)
print("The tuple is : ")
print(my_tuple)
K = 5
print("K has been assigned to " + str(K))
my_result = []
for elem in my_tuple:
if elem not in [max(my_tuple), min(my_tuple)]:
my_result.append(K)
else:
my_result.append(elem)
my_result = tuple(my_result)
print("The tuple after conversion is : " )
print(my_result)실행 결과
The tuple is : (25, 56, 78, 91, 23, 11, 0, 99, 32, 10) K has been assigned to 5 The tuple after conversion is : (5, 5, 5, 5, 5, 5, 0, 99, 5, 5)
코드 설명
- 튜플을 정의한 뒤 콘솔에 출력합니다.
- 교체할 값인 'K'를 정의하고 화면에 표시합니다.
- 결과를 담을 빈 리스트를 생성합니다.
- 반복문으로 튜플의 각 요소를 순회하면서 해당 요소가 최댓값 또는 최솟값인지 확인합니다.
- 최댓값·최솟값이 아니라면 대신 K를 리스트에 추가하고, 그렇지 않으면 원래 요소를 그대로 추가합니다.
- 완성된 리스트를
tuple메서드로 튜플 타입으로 변환합니다. - 최종 결과를 콘솔에 출력합니다.
참고: 성능 개선 팁
위 코드는 반복문 안에서 매번 max()와 min()을 호출하므로, 튜플의 크기가 커질수록 불필요한 연산이 반복되어 성능이 저하될 수 있습니다. 반복문을 시작하기 전에 최댓값과 최솟값을 미리 변수에 저장해 두면 연산 횟수를 크게 줄여 더 효율적으로 처리할 수 있습니다.