03 Python Collection - (2) tuple

처어리·2024년 1월 19일

python

목록 보기
20/36
post-thumbnail

collection

  • 여러개의 데이터를 한군데 모아 놓은 것입니다.
  • 순서형

    데이터에 index 를 붙여서 나열한 데이터 구조입니다

    str(문자열), list(리스트), tuple(튜플)

  • 맵핑형

    데이터를 key로 연결해서 나열한 데이터 구조입니다.
    데이터에 개별적으로 접근시에 key 값을 사용합니다.
    dict(딕트, dictionary)

  • 집합형

    순서나 key 값이 아닌 데이터를 한곳에 모아두는 구조입니다.
    데이터가 있는 공간을 구별할 수 없기 때문에 중복된 값을 보관할 수 없습니다.


비고자료형데이터 수정접근 방식
문자열str수정 불가sequence
튜플tuple수정 불가sequence
리스트list수정 가능sequence
사전dict수정 가능sequence
집합set수정 가능set(중복 x)



튜플 ( tuple )

  • 튜플은 여러가지 데이터를 순서있게 저장하지만, 한번 설정한 값은 수정할 수 없습니다.
  • 튜플을 생성할 때에는 () 를 사용합니다.
  • 튜플은 변하지 않는 값( 단위, 색상코드 ... ) 의 저장소로 사용하기에 적합합니다.


튜플 생성 방법

print('- 튜플 생성 방법 -')
tu = (1, 2, 3, 4, 5)
print(tu)
tu = ('a', 'b', 'c', 1, 2, 3)
print(tu)


  1. 하나의 요소를 가지는 튜플 생성

tu = ('data', )
print(tu, type(tu))


  1. 소괄호를 생략하여 생성이 가능합니다 -> packing

tu = 1, 2, 3
print(tu, type(tu))
print()


index

  • 튜플안의 특정 요소에 접근할 때 사용합니다.
tu = ('a', 'b', 'c', 'd', 'e')
print(f'tu {tu}')
print(f'tu[0] : {tu[0]}')
print(f'tu[len(tu) -1] : {tu[len(tu) - 1]}')
print()


슬라이싱 ( Slicing )

  • tuple 의 일정 부분의 요소를 선택(자르기)하여 사용할 수 있습니다 .
    • tuple이름[ 시작index : 종료index : step ]
  • 실제 종료 index 는 '지정한 index -1' 입니다.
    step 의 값은 기본적으로 1 씩 증가합니다
tu = ('a', 'b', 'c', 'd', 'e')
print(f'tu {tu}')

  • 0 ~ 2 번 index 까지 선택

tu = ('a', 'b', 'c', 'd', 'e')
print(tu[0 : 3])

  • -3 ~ -1 번 index 까지 선택

    시작은 - 값이지만 step 은 기본적으로 1씩 증가하기 때문에 뒤로 이동합니다

tu = ('a', 'b', 'c', 'd', 'e')
print(tu[-3: ])

  • 종료 index 가 - 이면 앞에서 이동합니다.

tu = ('a', 'b', 'c', 'd', 'e')
print(tu[ : -3])

  • 시작값이 종료값보다 높을때에는 이동간격을 - 로 설정해야 합니다.

tu = ('a', 'b', 'c', 'd', 'e')
print(tu[ -2: -5: -1])


for 문 적용

tu = ('a', 'b', 'c', 'd', 'e')
for n in tu:
    print(n, end=" ")
print()

for idx in range(len(tu)):
    print(tu[idx], end=" ")

튜플 연산


튜플 덧셈

  • 덧셈 연산을 사용해서 튜플과 튜플을 결합할 수 있습니다.

tu_1 = (1, 2, 3)
tu_2 = ('a', 'b', 'c')
print(f"tu_1 {tu_1}")
print(f"tu_2 {tu_2}")

tu_3 = tu_1 + tu_2
print(f"tu_3 {tu_3}")

튜플 곱셈

  • 튜플을 곱셈하면 그 값만큼 반복합니다.

tu_4 = ("고무",)
print(f"tu_4 {tu_4}")
print(tu_4*2)

in 연산자

tu_5 = 10, '열', True
print(f"tu_5 {tu_5}")
print()


print(f"10 in tu_5 : {10 in tu_5}")
print(f"구 in tu_5 : {'구' in tu_5}")
print(f"구 not in tu_5 : {'구' not in tu_5}")


n 차 튜플

  • 튜플 안의 요소가 튜플이 될 수 있습니다.
tu_6 = ((1, 'a'), (2, 'b'), (3, 'c'))
print(f"tu_6 {tu_6}")
print(f"tu_6[0] : {tu_6[0]}")
print(f"tu_6[1] : {tu_6[1]}")
print(f"tu_6[1][1] : {tu_6[1][1]}")
print()

for n1 in tu_6:
    for n2 in n1:
        print(n2, end=" ")

unpacking

  • 튜플의 요소들을 분해하여 각각의 변수에 할당 할 수 있습니다.
  • 이때 변수의 수는 튜플 요소의 수와 같아야 합니다.
fruits = '사과', '바나나', '망고'
print(f"fruits {fruits}")
print()

apple, banana, mango = fruits
print(f"apple {apple}")
print(f"banana {banana}")
print(f"mango {mango}")

0개의 댓글