Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 리스트를 반복(iteration)하는 5가지 방법

이 글에서는 Python 3.x(및 이전 버전)에서 리스트를 반복하거나 순회(traverse)하는 다양한 방법을 알아보겠습니다.

리스트는 요소들이 순서대로 저장되는 자료구조로, 비스칼라(non-scalar) 구조이며 변경 가능(mutable)한 특징을 가집니다. 또한 배열과 달리 서로 다른 데이터 타입의 요소들을 하나의 리스트에 담을 수 있다는 점이 큰 장점입니다.

방법 1 – 인덱스 없이 iterable 객체 사용하기

가장 간단하고 Python다운 방법입니다. for 문에 리스트를 직접 전달하여 각 요소를 순회합니다.

예제

list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']

# 리스트 순회
for value in list_inp:
    print(value, end='')

방법 2 – 인덱스를 이용한 일반적인 방식

range() 함수와 len() 함수를 조합하여 인덱스 기반으로 리스트를 순회할 수 있습니다. 인덱스 값이 필요할 때 유용합니다.

예제

list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']

# 리스트 순회
for value in range(0, len(list_inp)):
    print(list_inp[value], end='')

방법 3 – enumerate() 활용하기

enumerate()는 요소와 함께 해당 인덱스도 함께 반환해 주기 때문에, 값과 인덱스가 모두 필요한 경우 가장 효율적인 방법입니다.

예제

list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']

# 리스트 순회
for value, char in enumerate(list_inp):
    print(char, end='')

방법 4 – 음수 인덱스 사용하기

Python은 음수 인덱싱을 지원합니다. range()의 시작값을 -len(list)로 지정하고 끝값을 0으로 하면 음수 인덱스를 통해 리스트를 순회할 수 있습니다.

예제

list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']

# 리스트 순회
for value in range(-len(list_inp), 0):
    print(list_inp[value], end='')

위 네 가지 방법은 모두 아래와 동일한 출력 결과를 보여줍니다.

출력 결과

tutorialspoint

방법 5 – 슬라이싱(slicing)된 리스트 사용하기

슬라이싱을 활용하면 한 번에 하나의 요소씩 잘라내며 순회할 수 있습니다. 이 경우 출력 결과는 문자열이 아니라 리스트 형태로 나타납니다.

예제

list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']

# 리스트 순회
for value in range(1, len(list_inp)):
    print(list_inp[value-1:value], end='')
print(list_inp[-1:])

출력 결과

['t']['u']['t']['o']['r']['i']['a']['l']['s']['p']['o']['i']['n']['t']

결론

이번 글에서는 Python에서 리스트 자료형을 반복하고 순회하는 다섯 가지 방법을 살펴보았습니다. 상황에 따라 직접 순회, 인덱스 기반 순회, enumerate(), 음수 인덱스, 슬라이싱 등을 적절히 선택하여 사용하면 더욱 효율적이고 가독성 높은 코드를 작성할 수 있습니다.