파이썬 리스트 반복 (인덱스 사용)
for 루프 사용:
numbers = [1, 2, 3, 4, 5]
for index, value in enumerate(numbers):
print(f"인덱스: {index}, 값: {value}")
위 코드는 다음과 같은 출력을 생성합니다.
인덱스: 0, 값: 1
인덱스: 1, 값: 2
인덱스: 2, 값: 3
인덱스: 3, 값: 4
인덱스: 4, 값: 5
enumerate
함수는 리스트의 각 요소를 튜플로 반환합니다. 첫 번째 값은 인덱스이고 두 번째 값은 요소입니다.for
루프는 튜플을 반복하고 각 반복에서 인덱스와 요소를 별도의 변수에 할당합니다.
range 함수와 함께 for 루프 사용:
numbers = [1, 2, 3, 4, 5]
for i in range(len(numbers)):
print(f"인덱스: {i}, 값: {numbers[i]}")
range(len(numbers))
는 리스트의 길이만큼 반복되는 숫자 시퀀스를 생성합니다.for
루프는 시퀀스의 각 숫자를 반복하고 해당 인덱스를 사용하여 리스트에서 요소를 가져옵니다.
while 루프 사용:
numbers = [1, 2, 3, 4, 5]
index = 0
while index < len(numbers):
print(f"인덱스: {index}, 값: {numbers[index]}")
index += 1
index
변수는 리스트의 인덱스를 추적합니다.while
루프는 인덱스가 리스트 길이보다 작은 동안 반복됩니다.- 각 반복에서 요소를 출력하고 인덱스를 1씩 증가시킵니다.
주의:
- 리스트를 반복할 때 수정하려는 경우 반복 루프 내에서 조심해야 합니다. 인덱스를 기반으로 요소를 삭제하거나 삽입하면 나머지 반복에 영향을 미칠 수 있습니다.
- 리스트의 요소에만 접근하려는 경우
enumerate
함수를 사용하는 것이 가장 편리합니다. 인덱스가 필요하지 않은 경우range
함수나while
루프를 사용하는 것이 더 간결할 수 있습니다.
추가 정보
예제 코드: 리스트 직접 수정
numbers = [1, 2, 3, 4, 5]
# 짝수만 2씩 곱하기
for i, number in enumerate(numbers):
if number % 2 == 0:
numbers[i] = number * 2
print(numbers) # 출력: [2, 4, 6, 8, 10]
for
루프를 사용하여 리스트를 반복합니다.- 각 반복에서
number % 2 == 0
조건을 사용하여 숫자가 짝수인지 확인합니다. - 숫자가 짝수이면
numbers[i] = number * 2
를 사용하여 리스트의 해당 인덱스에 숫자를 2배로 곱합니다.
이렇게 하면 리스트의 모든 짝수 요소가 2배가 됩니다.
추가 예제
다음은 while
루프를 사용하여 리스트를 거꾸로 반복하고 요소를 출력하는 예제입니다.
numbers = [1, 2, 3, 4, 5]
index = len(numbers) - 1
while index >= 0:
print(numbers[index])
index -= 1
5
4
3
2
1
이 예에서는 while
루프와 index
변수를 사용하여 리스트를 거꾸로 반복합니다. 각 반복에서 요소를 출력하고 인덱스를 1씩 감소시킵니다.
리스트 반복 대체 방법 (파이썬)
리스트 매핑:
numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x * x, numbers))
print(squared_numbers) # 출력: [1, 4, 9, 16, 25]
위 코드는 map
함수와 익명 함수 (lambda)를 사용하여 리스트의 각 요소를 제곱합니다. map
함수는 입력 시퀀스의 각 요소에 함수를 적용하여 새로운 결과 시퀀스를 반환합니다. 이 경우 익명 함수는 각 숫자를 자체와 곱합니다.
리스트 추출식:
numbers = [1, 2, 3, 4, 5]
squared_numbers = [x * x for x in numbers]
print(squared_numbers) # 출력: [1, 4, 9, 16, 25]
위 코드는 리스트 추출식을 사용하여 리스트의 각 요소를 제곱합니다. 리스트 추출식은 리스트의 요소를 새로운 리스트로 필터링하거나 변환하는 간결한 방법입니다. 이 경우 추출식은 x * x
표현식을 사용하여 각 숫자를 자체와 곱합니다.
itertools 모듈 사용:
파이썬 itertools
모듈에는 다양한 리스트 반복 도구가 포함되어 있습니다. 예를 들어:
itertools.chain
은 여러 반복 가능한 객체를 하나의 연속된 반복 가능한 객체로 연결합니다.itertools.compress
는 조건에 따라 True를 반환하는 요소만 포함하는 새 반복 가능한 객체를 만듭니다.itertools.dropwhile
는 조건이 False가 될 때까지 반복 가능한 객체의 요소를 건너뛴 후 나머지 요소를 포함하는 새 반복 가능한 객체를 만듭니다.
- 위에 제시된 방법들은 모두 기본적인
for
루프보다 느릴 수 있습니다. 리스트가 매우 크거나 성능이 중요한 경우 기본 루프를 사용하는 것이 더 나은 선택일 수 있습니다. - 특정 작업에 가장 적합한 방법을 선택하는 것이 중요합니다.
python list