SKILL문법 List. 파이썬을 써본사람은 알겠지만, List는 여러 index를 입맛에 맞게 통제할 때 좋다.
SKILL에서 리스트는 소괄호로 표시된다. -> ( )
1. 리스트 만들기.
type( )함수로 해당변수를 찍어보면 list임을 확인할 수 있다.
delimeter(구분자)로는 공백도 되고 쉼표도 된다.
'( ) 는 내부에 연산자가 들어갈 수 없음
list( )는 내부에 연산자를 넣을 수 있음
1-1. 리스트 내 인자 인덱싱(indexing)하기
리스트 내에 있는 값을 적절히 뽑아서 활용해야 한다. 인덱싱 하는방법으로는
nthelem( ) 함수를 쓴다.
* 파이썬과 다르게 0번이 아니라 1번부터 인덱싱을 시작한다.
* 파이썬은 List를 벗어나면 에러를 띄우지만, SKILL은 nil이 출력된다.
2. 리스트 줄 표시(line display) 내장 변수 _itemsperline
Default로 list를 찍어보면, 아래와 같이 한 라인에 표시하는 List 갯수를 제한해 놓았다.
Display방식만 그렇다는 것이다. 데이터가 바뀌거나 하지는 않는다.
아래에서 numlist 변수 내 1 ~ 9개 총 9개의 index가 들어있다.
_itemsperline 내장된 변수에 값을 집어넣으면 딱 그에 맞는 List가 화면에 보여진다.
아래 예시는 _itemsperline값으로 2와 10을 넣었을 때, list가 어떻게 표시되는지에 대한 예시.
3. list() 함수 사용하기
3-1. 리스트 만드는 방법중, list() 함수와 '( ) 방법의 차이
1. list()함수로 만들면 리스트내 변수 속성이 그대로 따라간다.
2. '( ) 으로 만들면 해당 변수 이름을 떠나 symbol type 으로 저장된다.
4. cons() 함수 사용하여 List내 인덱스 통제하기
몇가지 Test.
referenceList라는 리스트값을 지닌 변수를 기준으로, 아래와 같이 value(값), valueList(값이 들어있는 리스트), strList(문자열이 들어있는 리스트)를 추가하여 resultList에 대입해보았다.
5. reverse( 리스트변수 ), 값의 순서를 뒤집기.
아래를 보면 리스트 인덱스 순서가 뒤바뀐것을 볼 수 있다.
6. append( 리스트변수, 리스트변수 ), 두개의 리스트를 합치기
변수값 선언
결과 확인
오류 발생 케이스
1. 2번째 인자로 반드시 list를 넣어야 한다.
2. 1번째 인자로 반드시 list를 넣어야 한다.
3. 인자로는 반드시 2개만 넣어야 한다.
7. cons() 함수와 append()함수 테스트
** 리스트 함수 사용을 위한 인덱싱 함수들
car cdr을 활용한 box좌표 뽑기
https://ansan-survivor.tistory.com/158?category=390224
8. 문장 String을 단어 String List로 쪼개기
단 여기서 쪼개서 나온 모든 인자는 List의 인덱스 형태로 나오게 된다.
결과
9. String으로 쪼개진 이 단어중 숫자만 골라서 연산하기.
먼저 100과 200 String을 뽑아낸다.
" " 가 있으므로 이 결과값은 String이다.
String끼리는 서로 연산이 불가능하다.
고로 아래와 같이 evalstring() 함수를 이용해 숫자로 만드는 과정을 거친 후 계산한다.
실수값도 잘 계산이 되는가 테스트 해보았다.
<추가> 실용적인 기능들
- 리스트내 최대값과 최소값 뽑기
https://ansan-survivor.tistory.com/286
- 리스트 순서 정렬하는 방법 (숫자 또는 문자)
https://ansan-survivor.tistory.com/287
- 리스트 내부 인자 값을 바꾸는 법
https://ansan-survivor.tistory.com/288