리스트 추가
- lappend
존재하지 않는 변수가 주어졌을 때는 새로 리스트를 생성하고 이미 존재하는 변수가 주어졌을 때는 리스트를 덧붙임
[ 원본 변수의 값이 변함 ]
set a "" // 비어 있음
lappend a 1 2 // 만약, $a로 선언하면 원본이 변하지 않는다.
lappend a 3 4 5
set a
리스트 연결
- concat
주어진 argument들을 연결하여 하나의 리스트로 만든다. 원본 변수의 값이 변하지 않음
set a [list 1 2]
set b [list 3 4]
concat $a $b
리스트 원소 얻기
- llength
주어진 리스트의 원소 갯수를 리턴
llength { 1 2 3 4 }
set a [ list a b c ]
llength $a
- lindex
주어진 리스트 중에서 인덱스에 해당하는 원소를 리턴 // 인덱스는 0부터 시작임
lindex { a b c d } 1
set k [ list a b c d ]
lindex $k 0
- lrange
주어진 리스트 중에서 시작 인덱스와 끝 인덱스 사이의 원소를 리턴
리스트의 끝까지 불러오는 인덱스 : end
set k [ list a b c d e f g ]
lrange $k 1 4
lrange $k 5 end
* lindex와 lrange 의 경우 저장된 데이터가 많을 경우 명령어의 수행 속도가 느려질 수 있으니 주의 *
리스트 원소 삽입 및 치환
* 원소 삽입 및 치환 명령어들은 대부분 원본 변수 값을 바꾸지 않는다.
- linsert -[list] -[index] -[argument]
리스트 argument 들을 주어진 인덱스 위치에 끼워 넣음
linsert { 0 1 2 3 } 2 a b c d // 2 >> 숫자에 해당하는 index에 a b c d 를 삽입
set k [ list a b c d ]
linsert $k 0 5 6
- lreplace -[list] -[start_index] -[end_index] -[argument]
리스트에서 시작 인덱스부터 끝 인덱스까지 주어진 argument 들로 바꿈
lreplace { 0 1 2 3 4 } 1 3 a b c d e // 1 ~ 3 에 해당하는 index 대신 argument로 치환
lreplace { 0 1 2 3 4 } 2 end d
리스트 검색과 정렬
- lsearch -[option]
option : -glob / -exact / -regexp [ default : -glob ]
리스트의 원소 중에서 패턴에 맞는 첫번째 원소를 찾아 그 원소에 해당하는 인덱스를 리턴,
패턴에 맞는 원소가 없는 경우 -1 리턴
lsearch { apple air snow } a* // apple에 해당하는 인덱스 0 출력
lsearch -exact { apple air snow } apple // apple 과 완전 일치하는 원소의 인덱스 출력
- lsort -[option]
리스트 원소들을 정렬하여 리턴
option :
-ascii : ASCII 값에 따라 정렬
-dictionary : 사전 순으로 정렬
-integer : 원소들이 모두 정수임을 명시 / 아닐경우 Error 발생
-real : 원소들이 모두 실수임을 명시 / 아닐경우 Error 발생
-increasing : 오름차순으로 정렬 [default]
-decreasing : 내림차순으로 정렬
배열은 일련의 데이터를 인덱스를 사용해 저장하고 참조할 수 있도록 해줌
set name(last) hyun
set name(first) byunghun
set index last
puts $name($index)
result : hyun
puts $name( $index )
result : error //why? 공백도 문자로 취급하기 때문에
'Linux > tcl' 카테고리의 다른 글
[tcl] (0) | 2022.08.02 |
---|---|
[Tcl] tcl 정규표현식 (0) | 2022.06.10 |
[Tcl] tcl 문자열 조작 (0) | 2022.05.18 |
[Tcl] tcl 제어구조 (0) | 2022.05.17 |
[Tcl] tcl 기본문법 (0) | 2022.05.17 |