일반적으로 프로그램 언어에는 성격이 비슷한 여러 개의 요소를 하나의 배열로 가지는 변수형을 지원하고, 대개의 경우 이를 배열(array)라고 부르곤 한다. 마이크로 파이썬에서도 이처럼 여러 개의 값을 구성요소로 가지는 변수 형태를 지원하는데, 다른 언어들의 배열 변수를 조금 더 세분하여 List와, 듀플, 딕셔너리 3가지 형태의 배열형 변수를 지원한다. 이중 가장 일반적으로 사용되는 배열형 변수인 List형 변수를 먼저 소개한다.
1. 선언 방법
배열을 선언하는 방법은 다음과 같이 하면 된다.
먼저 가장 기본적인 생성법은 다음과 같다. 값과 크기를 제한 없이 생성할 수 있다.
array=[ ]
또한 초기값을 지정해서 선언할 수도 있는데, 다음과 같이 하면 된다.
array=[‘a’,’b’,’c’,’d’,’e’,’f’]
만일 특정 값의 배열을 생성하려면 해당 요소를 일일이 적는 대신 다음과 같이 적는 방법으로 선언할 수도 있다.
array = list(range(0, 20))
배열에 값을 넣는 방법은 다음처럼 배열 생성과정에서 지정하는 방법과,
colors=[ “blue1”, “blue2”, “white”, “blue3”]
일단 생성을 한 후, 별도로 하나씩 지정하는 방법이 있다.
array[1] = ‘dog’
array[2] = ‘cat’
2. 피코보드의 핀들을 List로 선언하는 방법
만일 일반적인 값이 아니라, 피코보드의 여러 핀들을 하나의 배열로서 선언하는 것도 가능하다.
이렇게 여러 GP 핀들을 배열로 선언하는 것은 LED Matrix 같은 용도에 아주 유용한데, 다음과 같은 방식으로 선언하면 되고
pinH=[machine.Pin(13, machine.Pin.OUT),machine.Pin(3, machine.Pin.OUT),machine.Pin(4, machine.Pin.OUT),machine.Pin(10, machine.Pin.OUT), machine.Pin(6,machine.Pin.OUT),
machine.Pin(11, machine.Pin.OUT),machine.Pin(15,machine.Pin.OUT),
machine.Pin(16, machine.Pin.OUT)]
이 값들은 다음과 같은 순환문을 이용하면, 개별 GP 핀들을 일일이 수정하지 않고 하나의 집합으로 한 번에 변경해 줄 수 있어서 간편하다.
for k in range(len(pinV)):
pinH[k].value(0)
pinV[k].value(0)
3. 여러 종류의 값을 사용
마이크로 파이썬의 리스트형 변수가 가지는 주요 특징으로는 우선 다양한 자료형을 가질 수 있다는 점으로, 배열 내 요소로 정수형 요소와 문자열 요소를 함께 섞어서 가질 수 있다. 또한 중첩 리스트도 가능해서, 다음과 같이 List형 배열 자체를 하나의 요소로 가질 수도 있다.
arr = [1, 2, 3, [‘hello’, ‘good morning’]]
4. 배열 요소의 추가 및 삭제
배열인 List를 생성한 이후, 새로운 요소를 배열에 추가하거나 삭제하는 방법은 다음과 같다.
추가 array.append(값) ==> 배열의 마지막 순번 요소로 추가된다.
삭제 array.remove=[ “ “] ==> 특정한 값을 가지는 요소를 제거한다
끼워넣기 array.insert(5, “inserted”) ==> 배열 중간의 지정 순서에 새로운 값을 끼워 넣는다
5. 배열 요소의 참조
배열 내 요소의 수를 세거나 위치를 찾는 방법은 다음과 같다.
길이 len(arr) ==> 해당 배열 내 값이 몇 개 있는지를 알려준다
특정값갯수 array.count(값) ==> 지정한 값이 몇 개 있는지 count
특정값 위치 array.index(값) ==> 지정한 값이 몇 번째에 있는지 알려준다
내부값 pop array.pop(1) ==> 지정 순서의 값(미지정시 마지막)을 빼내준다.
빼내진 값은 원래 배열에서 삭제된다.
배열중 특정요소 array[ ] ==> 순서에 해당하는 값을 넣어준다. (0부터 시작)
array[ :2] ==> 순서의 범위를 이용하려면 slicing을 이용한다
6. 배열 요소의 인쇄
배열을 인쇄하는 방법은 다음과 같다.
배열 전체를 인쇄시 print (array)
특정요소만 선택 인쇄시 print (array [순서])
SLICING 이용 인쇄 print(array[:2])
6. 배열 요소의 정렬
배열의 요소들을 정렬하거나 역의 순서로 배열하는 방법은 다음과 같다.
정렬 array.sort( ) 오름차순
array.sort( reverse=True) 내림차순
거꾸로정렬 array.reverse( ) 현재 상태에서 순서를 거꾸로 재정렬시킴
색인 array[0:3]
array[:3]
array[3:]
