프롬프트
프롬프트 영역으로 마우스를 옮기고 Copy 버튼을 누르면 클립보드에 프롬프트의 내용이 복사됩니다.마이크로파이썬에서 tuple 자료형의 메소드를 설명해 줘.
AI가 만든 결과
마이크로파이썬(MicroPython)에서의 tuple
은 일반적인 파이썬(CPython)의 tuple
과 마찬가지로 불변(immutable) 순서열입니다. 즉, 한 번 생성된 튜플은 그 안의 요소를 변경(추가·삭제·수정)할 수 없고, 따라서 리스트와 달리 append()
, remove()
, pop()
같은 메서드는 제공되지 않습니다.
1. 주요 특징
- 불변(immutable): 생성 후 내부 요소 변경 불가
- 순서가 있음(ordered): 인덱스(0, 1, 2, …)로 접근 가능
- 반복(iterable):
for
루프 등으로 순회 가능 - 메모리 사용 효율: 변경되지 않는 집합 데이터를 저장할 때 리스트보다 메모리를 적게 사용할 수 있음
2. 지원 메서드
튜플이 제공하는 공식 메서드는 파이썬 표준과 동일하게 아래 두 가지뿐입니다.
2.1 tuple.count(value)
- 기능: 튜플 내에서 주어진
value
가 몇 번 등장하는지 횟수를 반환합니다. - 예시:
t = (1, 2, 3, 2, 2) print(t.count(2)) # 3
- 숫자
2
가 3번 등장하므로3
이 출력됩니다.
- 숫자
2.2 tuple.index(value[, start[, end]])
- 기능: 튜플 내에서
value
가 처음으로 등장하는 인덱스를 반환합니다. - 옵션:
start
와end
인덱스(숫자)를 넣어주면, 해당 범위 내에서만value
를 검색합니다.
예시:
t = ('apple', 'banana', 'cherry', 'banana') idx = t.index('banana') print(idx) # 1 (첫 번째 'banana'의 인덱스) idx_range = t.index('banana', 2) # 인덱스 2부터 검색 print(idx_range) # 3
- 첫 번째 예시에서는
banana
가 인덱스 1에 처음 등장 - 두 번째 예시에서는 인덱스 2부터 검색하므로,
banana
가 3에서 발견
- 첫 번째 예시에서는
3. 그 외의 연산들
아래 연산들은 메서드는 아니지만, 튜플을 다룰 때 자주 사용하는 문법입니다.
-
인덱싱:
t = (10, 20, 30) print(t[0]) # 10 print(t[1]) # 20
슬라이싱:
t = (10, 20, 30, 40, 50) print(t[1:4]) # (20, 30, 40) print(t[:3]) # (10, 20, 30) print(t[2:]) # (30, 40, 50)
- 일부 마이크로컨트롤러나 특정 MicroPython 버전에서는 슬라이싱 기능이 제한될 수도 있으니 주의가 필요합니다(일반적으로는 잘 지원).
-
길이(
len()
):t = ('a', 'b', 'c') print(len(t)) # 3
-
멤버십 연산(
in
):t = (1, 2, 3) print(2 in t) # True print(4 in t) # False
-
언패킹:
t = (100, 200, 300) x, y, z = t print(x, y, z) # 100 200 300
4. 주의사항 및 팁
-
불변성(Immutability)
튜플은 한 번 생성하면 내부 요소를 변경할 수 없으므로, 요소를 바꿔야 한다면 리스트(list
) 또는 다른 자료형을 사용해야 합니다. -
메모리 제약
MicroPython 환경은 일반 파이썬(CPython)에 비해 메모리 제한이 큰 경우가 많습니다. 튜플을 만들 때 한 번에 많은 요소를 담으면 메모리가 부족해질 수 있으니 주의하세요. -
메서드 제한
MicroPython 버전마다 일부 메서드나 문법이 부분적으로 제한될 수 있습니다. 하지만count()
와index()
는 대부분 정상적으로 동작합니다.
정리하자면, 마이크로파이썬의 튜플은 list
와 달리 불변이라는 점이 가장 큰 특징이며, 제공되는 공식 메서드는 count()
와 index()
두 가지뿐입니다. 그 외에는 일반 파이썬에서와 동일하게 인덱싱, 슬라이싱, 멤버십 테스트 등을 사용할 수 있습니다.