• Skip to primary navigation
  • Skip to main content

IoTmaker

사물인터넷에 대한 모든 것 여기서 해결하셔요!

  • 홈
  • 책:마이크로파이썬을 활용한 사물인터넷
  • 책:따라 하면서 배우는 사물인터넷
  • 온라인 교육 코스
  • 새로운 소식
  • 의견보내기
  • 내 수강정보
  • 로그인
  • 회원가입

AI 프롬프트 활용 3-21: 마이크로파이썬에서 tuple 자료형의 메소드

마이크로파이썬 > AI 프롬프트

프롬프트

  프롬프트 영역으로 마우스를 옮기고 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. 그 외의 연산들

아래 연산들은 메서드는 아니지만, 튜플을 다룰 때 자주 사용하는 문법입니다.

  1. 인덱싱:

    t = (10, 20, 30)
    print(t[0])  # 10
    print(t[1])  # 20
  2. 슬라이싱:

    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 버전에서는 슬라이싱 기능이 제한될 수도 있으니 주의가 필요합니다(일반적으로는 잘 지원).
  3. 길이(len()):

    t = ('a', 'b', 'c')
    print(len(t))  # 3
  4. 멤버십 연산(in):

    t = (1, 2, 3)
    print(2 in t)    # True
    print(4 in t)    # False
  5. 언패킹:

    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() 두 가지뿐입니다. 그 외에는 일반 파이썬에서와 동일하게 인덱싱, 슬라이싱, 멤버십 테스트 등을 사용할 수 있습니다.

Copyright © 2025 ·로그인