본문 바로가기
앱인벤터/강좌

앱인벤터 강좌 #1 리스트(List) 블록

by 이지이지(EGEasy) 2021. 6. 20.

안녕하세요. 이지이지입니다.

이번 포스팅을 시작으로, 앱인벤터 강좌를 하나씩 올리고자 합니다.

 

저 스스로 앱인벤터로 앱을 만들어가며, 어려웠거나 유용하게 사용했던 부분들을 위주로 최대한 쉽게 설명해보도록 하겠습니다.

 

그럼 그 첫 번째 시간 리스트(List) 블록에 대해 알아보도록 하겠습니다.

 

    리스트란(List)?

- 리스트는 유사한 항목의 집합으로 볼 수 있습니다.

- 예를 들어, 과일이라는 리스트를 만들고 그 항목으로 [사과, 바나나, 배, 수박]을 넣을 수 있습니다.

- 각 항목 하나하나를 따로 저장해두면 저장공간도 많이 차지하고, 찾기도 어려워지며 나중에 어떤 내용을 넣어두었는지 알기가 힘이 듭니다. 그래서 리스트에 유사한 항목을 함께 넣어두는 것이고, 다른 컴포넌트나 블록들과 함께 사용하기 위해 리스트를 사용합니다.

- 앱인벤터에서 리스트 항목은 대괄호[ ]안에 저장이 됩니다. ex.) [리스트1, 리스트2, 리스트3]

- 리스트의 항목은 처음에 지정해도 되지만, 나중에 추가, 삭제, 수정 등을 할 수 있습니다.

 

    리스트 블록

 

create empty list 블록

빈 리스트를 생성하는 블록입니다.

- 빈 리스트는 리스트 안에 몇 개의 항목이 들어갈지 정확히 어떤 값이 들어갈지 모를 때 사용합니다.


 

make a list 블록

리스트를 만드는 블록입니다.

- 보통 리스트에 들어가는 항목을 알고 있을 때 사용합니다.

- 좌측 상단의 톱니바퀴를 눌러 리스트에 들어갈 항목을 더 추가하거나 삭제할 수 있습니다.

- 리스트 안에 하위리스트를 넣을 수도 있습니다.

 

리스트의 예 #1

변수 students에는 ["홍길동","김유신","이순신"]이 저장됩니다.

 

하위리스트의 예

 

변수 grade에는 [["홍길동","김유신","이순신"],[70,90,80]]이 저장됩니다.

대괄호의 개수를 잘 보시기 바랍니다.

 


 

add items 블록

기존의 리스트에 항목을 추가하는 블록입니다.

- add items to list: 리스트에 항목을 추가하라 (블록의 기능)

- list: 항목을 추가할 리스트 이름

- item: 추가할 항목

 

add items의 예

위에서 만들어 보았던 변수 students에 "장보고"가 추가되어,

변수 students에는 ["홍길동","김유신","이순신","장보고"]가 저장됩니다.

 


 

is in list 블록

어떤 항목이 어떤 리스트에 있는지 알아보는 블록입니다.

- is in list?: 어떤 항목이 리스트에 들어있는가? (블록의 기능)

- thing: 검색할 항목

- list: 검색대상이 되는 리스트

- 만약 검색 항목이 리스트에 포함되어 있다면 true를, 포함되어 있지 않으면 false로 결과를 돌려받습니다.

 

is in list 예

위에서 만들었던 변수 students ["홍길동","김유신","이순신","장보고"]에는

"김유신"이 포함되어 있으므로 true를 결과로 돌려받습니다.


 

list length 블록

리스트의 항목의 개수(length)를 알아내는 블록입니다.

 

list length 블록의 예

변수 students에는 현재 4개의 항목이 있으므로 4가 반환됩니다.

 

list length 블록의 예 #2

변수 grade는 하위리스트 두 개를 포함하고 있으므로 이 경우에는 하위리스트의 개수인 2가 반환됩니다.

grade: [["홍길동","김유신","이순신"],[70,90,80]]

 

 


 

is list empty 블록

리스트가 빈 리스트인지 알아보는 블록입니다.

- 리스트가 빈 리스트(아무런 항목도 없는 경우)라면 true를 반환하고, 빈 리스트가 아니라면 false를 반환합니다.

 


 

random item 블록

리스트 항목 중에서 랜덤으로 항목 중 하나를 가져오는 블록입니다.

 


 

index in list 블록

어떤 항목이 리스트내에서 몇 번째 위치하고 있는지 알아내는 블록입니다.

- incex in list: 리스트에서 위치를 구하라. (블록의 기능)

- thing: 검색할 항목

- list: 검색 대상이 되는 리스트

 

index in list 블록의 예

변수 students ["홍길동","김유신","이순신","장보고"] 에서,

"김유신"의 위치는 두 번째 이므로, 2를 결과로 받게됩니다.

 


 

select list item 블록

주어진 리스트에서 주어진 위치에 있는 항목을 가져오는 블록입니다.

- select list item: 리스트의 항목을 가져오라. (블록의 기능)

- list: 항목을 가져 올 대상이 되는 리스트

- index: 가져 올 항목의 리스트내 위치

 

select list item의 예

변수 students ["홍길동","김유신","이순신","장보고"]에서 2번째 항목인 "김유신"을 결과로 돌려받습니다.

 


 

insert list item 블록

리스트에서 주어진 위치에 항목을 삽입합니다.

- insert list item: 리스트에 항목을 삽입하라. (블록의 기능)

- list: 항목을 삽입할 대상이 되는 리스트

- index: 항목을 삽입할 위치

- item: 삽입할 항목

- 항목이 삽입되면, 기존에 있었던 항목부터 그 뒤의 위치의 항목들은 위치가 1씩 밀려납니다.

예를 들어 10번 항목에 새로운 항목이 추가되면, 기존의 10번 항목은 11번으로, 11번 항목은 12번으로 밀려나게 됩니다.

 

insert list item의 예

변수 students ["홍길동","김유신","이순신","장보고"]에서 2번째 위치에 "손흥민"이 추가되면,

변수 students는 ["홍길동","손흥민","김유신","이순신","장보고"]이 됩니다.

 


 

replace list item 블록

리스트의 주어진 위치에 있는 항목을 새로운 항목으로 대체하는 블록입니다.

- replace list item: 리스트의 항목을 대체하라. (블록의 기능)

- list: 대체할 항목이 있는 리스트

- index: 대체할 항목의 리스트내 위치

- replacement: 새로 입력될 항목

 

replace list item의 예

변수 students ["홍길동","손흥민","김유신","이순신","장보고"]의 두 번째 항목 "손흥민"을 "박지성"으로 대체하게 되어,

변수 students는 ["홍길동","박지성","김유신","이순신","장보고"]가 됩니다.

 


 

remove list item 블록

리스트에서 주어진 위치에 있는 항목을 삭제하는 블록입니다.

- remove list item: 리스트에서 항목을 삭제하라. (블록의 기능)

- list: 삭제할 항목이 있는 리스트 이름

- index: 리스트에서 삭제할 항목의 위치

 

remove list item의 예

변수 students ["홍길동","박지성","김유신","이순신","장보고"]의 2번째 항목인 "박지성"을 삭제하므로,

변수 students는 ["홍길동","김유신","이순신","장보고"]가 됩니다.

 


 

apend to list 블록

리스트1에 리스트2의 항목 모두를 덧붙이는 블록입니다.

- append to list: 리스트에 덧붙여라. (블록의 기능)

- list1: 항목이 추가될 리스트 

- list2: 추가될 항목이 있는 리스트

- list1에 항목이 덧붙여지며, list2는 그대로 남아있게 됩니다.

 

append to list의 예

list1인 변수 students ["홍길동","김유신","이순신","장보고"]에 list2 ["손흥민","박지성"]을 더하게 되어,

변수 students는 ["홍길동","김유신","이순신","장보고","손흥민","박지성"]이 됩니다.

 


 

copy list 블록

리스트를 복사하는 블록입니다.

- copy list: 리스트를 복사하라. (블록의 기능)

- list: 복사 대상이 되는 리스트 이름

 


 

is a list 블록

어떤 항목이 리스트인지 알아보는 블록입니다.

- is a list?: 리스트가 맞는가? (블록의 기능)

- thing: 리스트인지 아닌지 알아볼 내용

- 만약 리스트가 맞다면 "true"를 리스트가 아니라면 "false"를 반환합니다.

 

is a list의 예

변수 students는 리스트가 맞으므로 "true"를 반환받게 됩니다.

 


 

list to csv row 블록

리스트를 1행의 csv형식(콤마로 값이 분리)으로 변환시키는 블록입니다.

- list to csv row: 리스트를 csv형식으로 변환시켜라. (블록의 기능)

- list: csv형식으로 바꿀 리스트 이름

 

list to csv row의 예

변수 students는 리스트 형식으로 ["홍길동","김유신","이순신","장보고","손흥민","박지성"]이 들어있습니다.

변수 csvStudents에는 "홍길동","김유신","이순신","장보고","손흥민","박지성" 처럼 콤마로 분리된 텍스트로 저장됩니다.

 


 

list to csv table 블록

리스트를 여러 행의 csv형식(콤마로 값이 분리)으로 된 표로 바꿉니다.

- list to csv table: 리스트를 여러 행을 가진 csv형식의 표로 바꾸어라. (블록의 기능)

- list: csv형식의 표로 바꿀 리스트 이름

- 보통 하위리스트를 포함한 리스트를 사용합니다.

- 각각의 하위리스트는 하나의 행을 이루게 됩니다.

 

list to csv table의 예

원래 리스트는 [["이순신","장보고"],[90,80]]으로 만들어 질 것입니다.

이것을 다시 csv table로 바꾸게 되면

 

"이순신","장보고"

90,85

 

위와 같은 결과를 반환받게 됩니다.

 


 

list from csv row 블록

csv(콤마로 값이 분리) 형식으로 된 1행짜리 텍스트를 리스트 형식으로 만드는 블록입니다.

- list from csv row: csv형식으로 된 1행짜리 텍스트를 리스트로 만들어라. (블록의 기능)

- text: list로 만들 텍스트

- 엑셀이나 구글 스프레드시트에서 데이터를 가져올 때 유용하게 사용됩니다.

 

list from csv row의 예

위 블록과 아래 블록에서 변수 students에는 모두 같은 값이 들어가게 됩니다.

list from csv row 블록을 이용해서 이렇게 좀 더 간편하게 리스트를 만들 수 있습니다.

 


 

list from csv table 블록

데이터가 표처럼 여러 행으로 되어 있고, csv형식으로 이루어진 텍스트를 리스트로 만드는 블록입니다.

- list from csv table: csv형식으로 된 텍스트 표를 리스트로 만들어라. (블록의 기능)

- text: 리스트로 만들 텍스트

- 리스트는 텍스트의 줄 개수만큼 하위리스트를 가지게 됩니다.

- 엑셀이나 구글 스프레드시트에서 데이터를 가져올 때 유용합니다.

 

list from csv table의 예

 

 

위 블록에서 텍스트는 \n(줄바꿈 기호)로 연결되어 두 줄로 되어 있습니다.

따라서 하위리스트가 2개인 [["이순신","장보고","홍길동","김유신","을지문덕"],["A","B","C","D","E"]] 리스트가 만들어집니다.

 


 

look up in pairs 블록

리스트 안에서 와 쌍을 이루고 있는 을 찾는 블록입니다.

- look up in pairs: 쌍에서 값을 찾아라. (블록의 기능)

- key: 찾을 값과 쌍을 이루고 있는 키

- pairs: 키가 포함되어 있는 리스트

- notFound: 키가 없을 경우 반환할 텍스트

- pairs는 반드시 하위리스트가 있는 리스트 형식이어야 하며

- 하위리스트는 반드시 두 개의 항목으로 이루어져 있어야 합니다.

- 하위리스트 안에 있는 두 개의 항목에서 첫 번째 항목은 가, 두 번째 항목은 이 됩니다.

 

look up in pairs 블록의 예

위 블록의 리스트는 [["a","apple"],["b","banana"],["c","chocolate"],["d","doughnut"]]으로 이루어져 있습니다.

각 하위리스트의 첫 번째 항목인 a, b, c, d, e는 키가 되며,

두 번째 항목인 apple, banana, chocolate, doughnut는 값이 됩니다.

그래서 키를 c로 하면, 값인 chocolate가 결과로 반환되게 됩니다.

 


 

join items using separator 블록

구분자를 사용하여 리스트에 있는 항목들을 하나로 연결하고 텍스트로 반환하는 블록입니다.

- join items using separator: 구분자를 사용하여 항목을 연결시켜라. (블록의 기능)

- list: 항목이 있는 리스트

 

join items using separator의 예

위 블록에서 구분자를 _(언더바)로 하였기 때문에,

이순신_홍길동_강감찬 이라는 텍스트가 반환됩니다.

 


이상 앱인벤터 리스트 블록에 대한 포스팅을 모두 마치도록 하겠습니다.

리스트는 앱인벤터에서 여러모로 정말 많이 사용되는 블록이니 반드시 확실한 이해가 필요합니다.~~

댓글