linsert — 리스트에 원소 끼워 넣기

linsert — 리스트에 원소 끼워 넣기

리스트 중간에 새로운 원소들을 끼워 넣고 싶을 때 linsert를 써요. 원본 리스트는 그대로 두고, 새 원소가 포함된 새 리스트를 만들어 돌려줘요. 인덱스는 0부터 시작하고, end-1처럼 끝을 기준으로도 지정할 수 있어요.

출처: 문서

본문

linsert 명령어는 listindex 번째 원소 바로 앞에 모든 element 인수를 끼워 넣어 만든 새 리스트를 만들어요. 각 element 인수는 새 리스트의 별개 원소가 돼요. index가 0보다 작거나 같으면 새 원소들은 리스트의 맨 앞에 삽입되고, indexlist의 길이보다 크거나 같으면 end인 것처럼 처리돼요. string index와 마찬가지로 인덱스 값은 단순 인덱스 산술과 끝 기준 인덱싱을 모두 지원해요.

인덱스는 리스트 내부의 위치를 가리켜야 하고 원소들은 항상 순서대로 삽입된다는 제약 아래에서, 삽입은 인덱스가 시작 기준일 때 첫 번째 원소가 결과 리스트의 그 인덱스에 오고, 인덱스가 끝 기준일 때 마지막 원소가 결과 리스트의 그 인덱스에 오도록 이루어져요.

구문은 다음과 같아요.

linsert list index ?element element ...?

예시

먼저 시작을 기준으로, 그다음 끝을 기준으로 값을 넣고, 이어서 함께 연결해 보는 예시예요.

set oldList {the fox jumps over the dog}
set midList [linsert $oldList 1 quick]
set newList [linsert $midList end-1 lazy]
# The old lists still exist though...
set newerList [linsert [linsert $oldList end-1 quick] 1 lazy]

더 알아보기

  • list, lappend, lindex, llength, lsearch, lset, lsort, lrange, lreplace, string