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

파이썬으로 리스트를 분할하고 앞부분을 뒤에 추가하는 프로그램

리스트를 특정 위치에서 분할한 후, 잘라낸 앞부분을 리스트의 끝에 다시 붙여야 하는 경우가 종종 있습니다. 이럴 때는 리스트를 순회하면서 슬라이싱(slicing) 기법을 활용하면 간단하게 해결할 수 있습니다.

파이썬의 리스트는 정수, 실수, 문자열 등 서로 다른 자료형의 값을 하나의 배열에 함께 저장할 수 있는 유연한 자료구조입니다.

아래 예제를 통해 실제 동작 과정을 살펴보겠습니다.

예제 코드

def split_list(my_list, n_val, k_val):
   for i in range(0, k_val):
      first_val = my_list[0]
      for k in range(0, n_val-1):
         my_list[k] = my_list[k + 1]
   my_list[n_val-1] = first_val

my_list = [34, 42, 56, 78, 9, 0, 23]
list_len = len(my_list)
pos = 3

print("리스트 원본 :")
print(my_list)
print("split_list 메서드를 호출합니다")

split_list(my_list, list_len, pos)

for i in range(0, list_len):
   print(my_list[i])

실행 결과

리스트 원본 :
[34, 42, 56, 78, 9, 0, 23]
split_list 메서드를 호출합니다
78
9
0
23
34
42
56

코드 설명

  • split_list 함수 정의: 리스트와 두 개의 값(리스트 길이, 분할 위치)을 매개변수로 받는 함수를 선언합니다.
  • 인덱싱을 통한 분할: 단순 인덱싱을 활용해 리스트 요소들을 한 칸씩 앞으로 이동시키고, 맨 앞의 값을 리스트의 마지막에 배치합니다.
  • 리스트 생성 및 출력: 예제용 리스트를 만들고 화면에 출력하여 원본 상태를 확인합니다.
  • 함수 호출: 리스트와 분할 위치(pos = 3)를 인자로 전달하며 함수를 실행합니다.
  • 결과 확인: 변환된 리스트가 콘솔에 순서대로 출력됩니다.

참고: 더 간결한 슬라이싱 방법

위 코드는 반복문을 사용하지만, 파이썬의 슬라이싱을 이용하면 한 줄로도 같은 결과를 얻을 수 있습니다.

my_list = [34, 42, 56, 78, 9, 0, 23]
pos = 3
result = my_list[pos:] + my_list[:pos]
print(result)  # [78, 9, 0, 23, 34, 42, 56]

슬라이싱 방식은 새로운 리스트를 반환하기 때문에 원본 리스트를 유지하고 싶은 경우에도 유용하게 사용할 수 있습니다.