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

파이썬으로 리스트 내 문자열을 특정 범위로 슬라이싱하는 방법

리스트에 저장된 여러 문자열에서 각각 특정 범위의 부분 문자열만 추출해야 하는 경우가 종종 있습니다. 이럴 때 리스트를 반복(iteration)하면서 : 연산자와 슬라이싱(slicing) 기법을 함께 사용하면 원하는 범위의 문자열을 간단하게 얻을 수 있습니다.

예제 코드

다음은 실제 동작 과정을 보여주는 예시입니다.

my_list = ["Hi", "there", "how", 'are', 'you']

print("The list is : ")
print(my_list)

m, n = 2, 4

my_result = []
for elem in my_list:
   my_result.append(elem[m : n + 1])

print("The sliced strings are : " )
print(my_result)

실행 결과

The list is :
['Hi', 'there', 'how', 'are', 'you']
The sliced strings are :
['', 'ere', 'w', 'e', 'u']

동작 원리

  • 먼저 문자열 요소들로 이루어진 리스트를 정의하고, 콘솔에 출력하여 확인합니다.

  • 슬라이싱 범위를 결정할 두 변수 mn에 시작 인덱스와 끝 인덱스 값을 할당합니다.

  • 결과를 저장할 빈 리스트를 하나 생성합니다.

  • 원본 리스트를 반복하면서 각 문자열 요소를 m부터 n까지 슬라이싱한 뒤, 빈 리스트에 순서대로 추가(append)합니다.

  • 이 과정에서 : 연산자와 함께 변수로 지정된 인덱스 범위를 사용해 문자열의 일부분에 접근합니다.

  • 모든 처리가 끝나면 최종 결과를 콘솔에 출력합니다.

슬라이싱 문법 참고

파이썬에서 문자열[m : n + 1]은 인덱스 m부터 n까지의 문자를 포함합니다. 슬라이싱의 끝 인덱스는 미포함(exclusive)이기 때문에, n번째 문자까지 추출하려면 n + 1을 지정해야 합니다. 위 예제에서 첫 번째 요소 'Hi'는 길이가 2로 범위보다 짧아 빈 문자열 ''이 반환되는 점도 눈여겨볼 만합니다.

더 간결한 방법: 리스트 컴프리헨션

동일한 작업은 리스트 컴프리헨션(list comprehension)을 사용하면 한 줄로 처리할 수 있어 코드가 더욱 간결해집니다.

my_result = [elem[m : n + 1] for elem in my_list]

반복문 대신 컴프리헨션을 활용하면 가독성과 성능 면에서 모두 유리하므로, 실무에서는 이 방식을 권장합니다.