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

파이썬 – N번째 인덱스마다 리스트 요소 삽입하기

리스트의 N번째 인덱스마다 다른 리스트의 요소를 삽입해야 하는 경우, 간단한 반복문과 enumerate 함수를 조합하면 손쉽게 구현할 수 있습니다. 이 기법은 데이터에 주기적으로 구분자를 넣거나 특정 간격으로 값을 끼워 넣어야 할 때 유용하게 활용됩니다.

예제

다음은 실제 동작을 보여주는 예제 코드입니다.

my_list = [13, 27, 48, 12, 21, 45, 28, 19, 63]

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

append_list = ['P', 'Y', 'T']

N = 3
print("The value of N is ")
print(N)

my_result = []

for index, element in enumerate(my_list):
    if index % N == 0:
        for element_in in append_list:
            my_result.append(element_in)
    my_result.append(element)

print("The result is :")
print(my_result)

출력 결과

The list is :
[13, 27, 48, 12, 21, 45, 28, 19, 63]
The value of N is
3
The result is :
['P', 'Y', 'T', 13, 27, 48, 'P', 'Y', 'T', 12, 21, 45, 'P', 'Y', 'T', 28, 19, 63]

코드 설명

  • 정수로 이루어진 리스트를 정의하고 콘솔에 출력합니다.

  • 삽입할 요소들을 담고 있는 또 다른 리스트를 정의합니다.

  • 삽입 주기를 결정하는 N 값을 정의하고 콘솔에 출력합니다.

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

  • enumerate를 사용해 원본 리스트를 순회하면서 각 요소와 해당 인덱스를 함께 가져옵니다.

  • 인덱스를 N으로 나눈 나머지가 0인지 검사하여, 현재 위치가 N번째 인덱스인지 판별합니다.

  • 나머지가 0이라면 삽입용 리스트의 모든 요소를 결과 리스트에 먼저 차례로 추가합니다.

  • if 조건과 관계없이 현재 순회 중인 요소는 항상 결과 리스트에 추가되므로, 원본 리스트의 요소들이 그대로 유지됩니다.

  • 모든 순회가 끝나면 완성된 결과 리스트가 콘솔에 출력됩니다.