리스트에 담긴 튜플의 요소 부호를 변경해야 하는 경우, 간단한 반복문과 abs 메서드, 그리고 append 메서드를 활용하면 손쉽게 처리할 수 있습니다.
예제 코드
아래는 실제 구현 예시입니다.
my_list = [(51, -11), (-24, -24), (11, 42), (-12, 45), (-45, 26), (-97, -4)]
print("The list is :")
print(my_list)
my_result = []
for sub in my_list:
my_result.append((abs(sub[0]), -abs(sub[1])))
print("The result is :")
print(my_result)출력 결과
The list is : [(51, -11), (-24, -24), (11, 42), (-12, 45), (-45, 26), (-97, -4)] The result is : [(51, -11), (24, -24), (11, -42), (12, -45), (45, -26), (97, -4)]
코드 설명
튜플로 구성된 리스트를 정의한 뒤 콘솔에 출력합니다.
결과를 저장할 빈 리스트를 하나 생성합니다.
반복문을 사용해 원본 리스트의 각 튜플을 순회합니다.
abs메서드를 사용해 음수 요소의 절댓값을 구합니다. 위 예제에서는 첫 번째 요소는 양수로, 두 번째 요소는 음수로 부호를 통일했습니다.변환된 튜플을
append메서드로 빈 리스트에 추가합니다.최종 결과 리스트를 콘솔에 출력합니다.
더 간결한 방법: 리스트 컴프리헨션
위 코드는 리스트 컴프리헨션(list comprehension)을 사용하면 한 줄로 더 간결하게 작성할 수 있습니다.
my_result = [(abs(a), -abs(b)) for a, b in my_list] print(my_result)
이 방식은 가독성이 뛰어나고 성능 면에서도 유리하여, 실무에서 널리 사용되는 파이썬다운 관용구(idiom)입니다.