본문 바로가기

앱인벤터

[앱인벤터 기초] 공통블록 - 리스트블록 이해하기

공통블록은 앱인벤터 화면에 아무것도 없어도 사용가능한 명령 블록입니다.

공통블록 안에는 '제어', '논리', '수학', '텍스트', '리스트', '색상', '변수', '함수' 블록으로 구성되어 있습니다.

 


리스트블록

 

리스트블록은 여러 개의 값을 저장하는 리스트와 관련된 명령블록들로 구성되어 있습니다.

 

블록 검색 명령어 설명
빈 리스트 만들기 빈 리스트를 만듭니다.
리스트 만들기 여러 개의 항목을 가진 리스트를 만듭니다.
항목 추가하기 만들어진 리스트 끝에 항목(item)을 하나 추가합니다.
리스트안에 있나요? '리스트'에 '항목'에 있는 값이 포함되 있으면 참, 없다면 거짓을 반환합니다. 
길이 구하기 리스트의 길이(항목 수)를 반환합니다. 
리스트가 비어있는가? 리스트가 비어 있으면 참을, 아니라면 거짓을 반환합니다.
임의의 항목 선택하기 리스트 안의 항목을 임의로 선택합니다.
리스트에서 위치찾기 '항목'에 있는 내용이 리스트에 있는지 확인한 후 그 위치를 반환합니다.
항목 선택하기 리스트에서 '위치'에 해당하는 데이터를 반환합니다.
항목 삽입하기 리스트에서 '위치'에 해당하는 곳에 '항목'을 추가합니다.
항목 교체하기 리스트에서 '위치'에 해당하는 곳에 '바꿀항목'으로 교체합니다. 해당 위치에 있던 내용은 삭제됩니다.
항목 삭제하기 리스트에서 '위치'에 해당하는 데이터를 삭제합니다.
리스트 합치기 두 개의 리스트를 첫 번째 리스트 끝에 추가합니다.
리스트 복사하기 모든 하위 항목을 복사해서 복사본 리스트를 만듭니다.
리스트인가요? '값'이 리스트이며 참을, 아니면 거짓을 반환합니다.
역순으로 바꾸기

리스트 항목에 있는 내용을 반대순서로 항목을 바꿉니다. 

예) [1,2,3] -> [3,2,1]

CSV행으로 바꾸기

CSV표로 바꾸기

리스트를 테이블의 행을 나타내는 CSV(쉼표로 구분된 값) 텍스트로 바꿉니다. 예) 리스트(abcd)를 CSV 행으로 변환하면 "a", "b", "c", "d" 가 생성됩니다. 

리스트를 표로 나타내는 CSV 텍스트로 바꿉니다. 반환 된 텍스트에서 행의 항목은 쉼표고 구분되고 행은 CRLF (\r \n)로 구분됩니다.

CSV행을 리스트로 바꾸기

CSV표를 리스트로 바꾸기

CSV형태의 텍스트를 리스트로 변환합니다. 예) ( "a", "b", "c", "d")를 목록으로 변환하면 (abcd)가 생성됩니다.

CSV형태의 텍스트를 리스트로 변환합니다.  줄 바꿈(\ n) 또는 CRLF (\r \n)로 행을 구분할 수 있습니다.

짝을 지어 찾기 

리스트로 표시되는 사전과 같은 구조에서 정보를 조회하는 데 사용됩니다. 이 작업은 key , list pairs  notFound 결과의 세 가지 입력을 가져 오며 기본적으로 "찾을 수 없음"으로 설정됩니다. 첫 번째 요소가 key 인 첫 번째 쌍을 찾아 두 번째 요소를 반환합니다.

예) ((a apple) (d dragon) (b boxcar) (cat 100)) 에서 b를 조회하면 'boxcar'가 반환됩니다. 

구분자로 결합하기 지정된 구분자로 지정된 목록의 모든 요소를 ​​결합하여 결과적으로 텍스트를 생성합니다.

리스트(list)

- 리스트는 배열이 가지고 있는 인덱스라는 장점을 버리고 대신 빈틈없는 데이터의 적재 라는 장점을 취한 데이터 스트럭쳐
- 리스트 자료구조의 핵심은 엘리먼트들 간의 순서. 따라서 리스트를 다른 말로는 시퀀스(sequence) 라고도 부른다. 즉 순서가 있는 데이터의 모임이 리스트이다.
- 리스트에서 인덱스는 몇 번째 데이터인가 정도의 의미를 가진다. (배열-Array에서의 인덱스는 값에 대한 유일무이한 식별자)
- 빈 엘리먼트는 허용하지 않는다.
- 순차성을 보장하지 못하기 때문에 spacial locality 보장이 되지 않아서 cash hit가 어렵다.
- 데이터 갯수가 확실하게 정해져 있고, 자주 사용된다면 array가 더 효율적이다.리스트에 대한 효용은 어떤 언어를 사용하느냐에 따라서 달라진다. 특히 많은 언어가 리스트를 기본적으로 지원하기 때문에 리스트를 직접 구현하는 경우는 줄고 있다.

출처 : https://wayhome25.github.io/cs/2017/04/17/cs-18-1/