6.1 for
반복문
Python에서는 리스트의 요소를 반복할 때 주로 for
반복문을 사용해.
이 방법은 리스트의 각 요소에 대한 코드를 실행할 수 있는 가장 일반적인 접근 방식이야.
for
반복문의 기본
Python의 for
반복문은 리스트의 각 요소를 순회하면서 현재 요소의 값을
for
다음에 지정된 변수에 일시적으로 할당해. 예를 들어:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits:
print(fruit)
리스트를 역순으로 반복하려면 슬라이싱을 사용할 수 있어:
fruits = ["apple", "banana", "cherry"]
for fruit in fruits[::-1]:
print(fruit)
6.2 인덱스를 사용한 for
반복문
전통적인 for
반복문 외에도 range()
함수를 결합하여
리스트를 반복할 수 있어. 이는 요소뿐만 아니라 그 위치에 대해서도 작업할 수 있도록 해주며,
복잡한 데이터 조작을 수행할 때 유용해.
인덱스를 사용한 반복의 기본
각 요소의 인덱스에 접근하면서 리스트를 반복하려면 다음과 같은 접근 방식을 사용할 수 있어:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
print(f'Index: {i}, Element: {my_list[i]}')
인덱스를 사용할 때의 장점
반복문에서 인덱스를 사용하면 각 요소에 접근할 수 있을 뿐 아니라 리스트의 요소를 직접 변경할 수 있어. 이는 반복 중에 리스트를 수정해야 할 때 특히 유용해.
예시:
my_list = ['a', 'b', 'c', 'd']
for i in range(len(my_list)):
my_list[i] = my_list[i] * 2
복잡한 조작의 예시
인덱스를 사용하면 여러 리스트 요소를 동시에 접근해야 하는 알고리즘을 쉽게 구현할 수 있어, 예를 들어 현재 요소를 이전 또는 다음 요소와 비교하는 경우:
예시:
my_list = [3, 5, 2, 9, 4]
for i in range(1, len(my_list)):
if my_list[i] > my_list[i - 1]:
print(f'{my_list[i]} is greater than {my_list[i - 1]}')
6.3 enumerate()
함수 사용하기
Python에서는 enumerate()
함수를 사용하여 리스트의 요소를 인덱스와 함께
손쉽게 반복할 수 있어. 이는 반복 내에서 리스트 요소의 인덱스와 값을 동시에 처리해야 할 때 특히 유용해.
enumerate()
함수의 기본
enumerate()
함수는 리스트를 특별한 객체로 감싸고
인덱스와 요소 값을 포함하는 튜플(값 쌍)을 생성하는 이터레이터를 반환해:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
print(f'Index: {index}, Element: {element}')
이제 요소 뿐만 아니라 그 인덱스도 가지고 있어.
enumerate()
의 장점
enumerate()
를 사용하면 코드가 더 읽기 쉬워지고 range(len(...))
를 통해
인덱스를 수동으로 관리할 필요가 없어. 이는 리스트 요소의 수정, 접근, 조건 검사를 쉽게 만들어줍니다.
사용 예시
enumerate()
는 리스트 요소를 동시에 수정하거나 요소와 인덱스를 비교해야 할 때 이상적이에요:
my_list = ["apple", "banana", "cherry"]
for index, element in enumerate(my_list):
if index % 2 == 0:
print(f'Element {element} at even index {index}')
6.4 while
반복문
이제 for
에 대해 이야기했으니 while
반복문도 이야기해보자.
이 반복문도 리스트의 요소를 처리할 때 유용해.
while
반복문은 조건을 먼저 검사하며 실행을 시작해. 조건이 참이면 반복문의 본문을 실행하고
조건을 다시 확인해. 조건이 거짓이 될 때까지 이 과정이 반복돼.
리스트를 통한 반복의 예시
리스트에 숫자가 있고 특정 값을 만날 때까지 반복하고 싶다고 가정해보자:
numbers = [1, 2, 3, 4, 5, -1, 6]
i = 0
while i < len(numbers) and numbers[i] != -1:
print(numbers[i])
i += 1
for
반복문과 크게 다르지 않지? 하지만 리스트의 요소와 작업하기 위해 인덱스를 사용할 필요가 없는 경우도 있어.
예를 들어, 리스트에 일부 작업이 저장되어 있어 이를 하나씩 꺼내 수행하고 리스트에서 제거해야 한다면 말이야.
이 코드는 다음과 같이 작성할 수 있어:
tasks = [1, 2, 3, 4, 5, -1, 6]
while len(tasks) > 0:
task = tasks.pop()
print(task)
GO TO FULL VERSION