리스트의 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 조건과 관계없이 현재 순회 중인 요소는 항상 결과 리스트에 추가되므로, 원본 리스트의 요소들이 그대로 유지됩니다.
모든 순회가 끝나면 완성된 결과 리스트가 콘솔에 출력됩니다.