CodeGym /자바 코스 /Python SELF KO /튜플 요소에 대한 반복문

튜플 요소에 대한 반복문

Python SELF KO
레벨 8 , 레슨 5
사용 가능

14.1 for 반복문

Python에서는 튜플의 요소를 순회하는 데 일반적으로 for 반복문을 사용해. 이건 각 튜플 요소에 접근해서 코드 블록을 실행할 수 있는 가장 일반적인 방법이야.

for 반복문

for 반복문은 튜플의 각 요소를 순회하면서 현재 요소의 값을 for 키워드 다음에 지정된 변수에 잠시 할당해. 예를 들면:


my_tuple = (1, 2, 3, 4, 5)
for number in my_tuple:
    print(number)

이미 리스트와 for 반복문을 다뤄봤으니, 몇 가지 실용적인 예제를 보자:

예제 1: 튜플 요소들의 합

튜플의 모든 요소를 합하는 예제를 보자.


my_tuple = (10, 20, 30, 40, 50)
total = 0

for number in my_tuple:
    total += number

print(f"튜플의 요소들의 합: {total}")

이 예제에서는 my_tuple라는 튜플과 요소들의 합을 저장할 total 변수를 만들어. for 반복문을 사용해 튜플의 각 요소를 순회하면서 total에 더해. 그 결과로 모든 요소의 합을 얻을 수 있어.

예제 2: 최대 요소 찾기

이번엔 튜플에서 최대 요소를 찾는 예제를 보자.


my_tuple = (5, 17, 23, 11, 2)
max_value = my_tuple[0]

for number in my_tuple:
    if number > max_value:
        max_value = number

print(f"튜플에서 최대값: {max_value}")

이 예제에서는 튜플의 첫 번째 요소로 max_value를 초기화해. 그런 다음 모든 요소를 순회하면서, 각 요소를 현재 최대값과 비교해 더 큰 값이 있다면 max_value를 갱신해.

14.2 중첩 튜플

튜플은 다른 튜플을 포함할 수 있고, for 반복문을 사용하여 중첩된 데이터 구조를 순회할 수 있어.


nested_tuple = ((1, 2, 3), (4, 5, 6), (7, 8, 9))

for inner_tuple in nested_tuple:
    for number in inner_tuple:
        print(number, end=' ')
    print()

이 예제에서 nested_tuple은 튜플들을 포함해. 우리는 중첩된 for 반복문을 사용해서 각 중첩된 튜플의 요소를 순회해. 수행 결과:


1 2 3 
4 5 6 
7 8 9 

14.3 인덱스를 사용하는 for 반복문

리스트와 마찬가지로, 튜플의 요소들도 인덱스를 가지고 있어. 그래서 for 반복문과 range() 함수를 조합하여 순회할 수 있어. 이렇게 하면 요소뿐만 아니라 위치에 대해서도 작업할 수 있어, 데이터에 대해 더 복잡한 조작을 수행할 때 유용해.

인덱스 기반 순회의 기본

각 요소의 인덱스에 접근하여 튜플을 순회하려면 다음과 같은 코드를 사용할 수 있어:


my_tuple = ('a', 'b', 'c', 'd')
for i in range(len(my_tuple)):
    print(f'index: {i}, Element: {my_tuple[i]}')

인덱스를 사용하는 장점

인덱스를 사용하면, 예를 들어 현재 요소를 이전 또는 다음 요소와 비교하는 등 튜플의 여러 요소에 동시에 접근해야 하는 알고리즘을 쉽게 구현할 수 있어.

예제:


my_tuple = (15, 20, 23, 18, 22, 19, 21)
for i in range(1, len(my_tuple)):
    if my_tuple[i] > my_tuple[i - 1]:  # 이전 요소와 비교
        print(f'{my_tuple[i]} is greater than {my_tuple[i - 1]}')

데이터 처리를 위한 인덱스를 사용하는 for 반복문

가령, 일주일 동안의 온도 데이터를 가진 튜플이 있고, 극단적인 값(가장 낮은 값과 가장 높은 값)을 제외한 평균 온도를 계산하고자 한다고 가정해 보자.


temperatures = (15, 20, 23, 18, 22, 19, 21)
sorted_temps = sorted(temperatures)

# 첫 번째와 마지막 온도 제외
filtered_temps = sorted_temps[1:-1]

average_temp = sum(filtered_temps) / len(filtered_temps)
print(f"일주일 평균 온도 (극단적인 값 제외): {average_temp}")

14.4 enumerate() 함수 사용하기

Python에서, enumerate() 함수는 튜플의 요소를 인덱스와 함께 순회할 수 있는 편리한 방법을 제공해. 이는 특히 인덱스와 리스트 요소의 값을 동시에 처리해야 할 때 유용해.

enumerate() 함수의 기본

enumerate() 함수는 튜플을 특별한 객체로 감싸서, 인덱스와 튜플 요소의 값으로 구성된 튜플 쌍을 생성하는 반복자를 반환해:


my_tuple = ('apple', 'banana', 'cherry')
for index, element in enumerate(my_tuple):
    print(f'index: {index}, Element: {element}')

이제 요소뿐만 아니라 그 인덱스도 가지고 있어.

enumerate()의 장점

enumerate()를 사용하면 코드를 더 읽기 쉽게 만들어주고 range(len(…))을 사용하여 인덱스를 수동으로 관리할 필요가 없게 해줘. 이는 요소 변경, 요소 접근, 조건 검사를 수행할 때 리스트 요소들을 다루는 것을 더 쉽게 해줘.

사용 예제들

가끔 튜플에서 특정 값이 나타나는 모든 인덱스를 찾아야 할 때가 있어.


my_tuple = (1, 2, 3, 2, 4, 2, 5)
search_value = 2
indices = []

for index, value in enumerate(my_tuple):
    if value == search_value:
        indices.append(index)

print(f"값 {search_value}는 인덱스에 나타난다: {indices}")

이 코드는 튜플에서 값 2가 나타나는 모든 인덱스를 찾아:


값 2는 인덱스에 나타난다: [1, 3, 5]

인덱스 기반의 데이터 필터링

인덱스를 기반으로 데이터를 필터링하여 짝수 인덱스를 가진 요소만 남기는 예제를 보자.


my_tuple = ('a', 'b', 'c', 'd', 'e', 'f')

filtered_tuple = tuple(value for index, value in enumerate(my_tuple) if index % 2 == 0)
print(f"짝수 인덱스 요소를 가진 튜플: {filtered_tuple}")

이 코드는 짝수 인덱스를 가진 요소들만 포함하는 새로운 튜플을 만들어:


짝수 인덱스 요소를 가진 튜플: ('a', 'c', 'e')
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION