리스트 명령어는 원본 변수의 값을 변화 시키는지 아닌지가 핵심
변수의 이름을 Argument로 받는 경우는 원본 변수의 값을 변화시키고
변수의 값을 Argument로 받는 경우엔 원본 변수의 값을 변화시키지 않음
변수 이름 앞에 $가 붙으면 원본이 변하지 않음
- lappend
새로운 변수가 주어지면 새로 리스트를 생성하고
이미 존재하는 변수가 주어지면 리스트의 끝에 덧붙임 , 원본 변수 값 바뀜
$ lappend var 1 2
$ lappend var 3 4 5
$ puts $var
result 1 2 3 4 5
- concat
주어진 Argument들을 연결해 하나의 리스트로 만듬 , 원본 변수 값 변하지 않음
$ set a [list 1 2]
$ set b [list 3 4]
$ set c 5
$ puts [concat $a $b $c 6 7]
result 1 2 3 4 5 6 7
- llength
주어진 리스트의 원소 개수를 리턴
$ puts [llength [list 1 2 3]]
result 3
- lindex
주어진 리스트 중에서 인덱스에 해당하는 원소를 리턴, 인덱스는 0부터 시작
$ puts [lindex [list 1 2 3 4] 3]
result 4
- lrange
주어진 리스트 중에서 시작 인덱스와 끝 인덱스 사이의 원소를 리턴
리스트의 끝까지를 나타내는 특별 인덱스 : end
$ puts [lrange [list 1 2 3 4] 0 end]
result 1 2 3 4
- linsert
리스트 Argument들을 주어진 인덱스 위치에 삽입
$ puts [linsert [list 1 2 3 4] 2 h i]
result 1 2 h i 3 4
- lreplace
리스트에서 시작 인덱스부터 끝 인덱스까지 주어진 Argument들로 바꿈
$ puts [lreplace [lits 0 1 2 3] 1 2 h i]
result 0 h i 3
- lsearch
리스트의 원소 중에서 패턴에 맞는 원소를 찾아 해당 원소를 리턴 [ 결과값 0 ]
패턴이 맞는 원소가 없을 경우 -1 리턴
opt : -glob : 기본옵션 , -exact : 정확히 모든 글자 일치 , -regexp : 정규 표현식 이용
$ puts [lsearch [list apple banana grape] a*]
result 0
$ puts [lsearch [list apple banana grape] c*]
result -1
- lsort
리스트의 원소들을 정렬하여 리턴
opt : -increasing : 오름차순 [default] , -decreasing : 내림차순 -ascii : ASCII값에 따라 정렬
-dictionary : 사전 순으로 정렬 , -integer : 원소들이 모두 정수임을 명시, 정수가 아니면 에러
$ puts [lsort [list c a d b]]
result a b c d