본문 바로가기

Python/파이썬 - 기본을 갈고 닦자!

#16. tuple(튜플)

16. tuple(튜플)

 

16. tuple(튜플)

## 1. tuple(튜플) - tuple(튜플)은 불변한 순서가 있는 객체의 집합입니다. - list형과 비슷하지만 한 번 생성되면 값을 변경할 수 없습니다. - REPL에서…

wikidocs.net

더보기
더보기

1. tuple(튜플)

  • tuple(튜플)은 불변한 순서가 있는 객체의 집합입니다.
  • list형과 비슷하지만 한 번 생성되면 값을 변경할 수 없습니다.
  • REPL에서 확인해봅니다.
  • list와 마찬가지로 다양한 타입이 함께 포함될 수 있습니다.
>>> t = (1, "korea", 3.5, 1)
>>> t
(1, 'korea', 3.5, 1)
>>> type(t)
<class 'tuple'>
  • 순서가 있기때문에 인덱스로 접근 가능합니다.
>>> t[0]
1
>>> t[1]
'korea'
  • len내장함수로 길이를 구할 수 있습니다.
>>> len(t)
4
  • list와 마찬가지로 for loop을 돌 수 있습니다.
>>> for i in t:
...     print(i)
... 
1
korea
3.5
1
  • + 연산으로 tuple(튜플)을 추가할 수 있습니다.
>>> t = t + (3 ,5)
>>> t
(1, 'korea', 3.5, 1, 3, 5)
  • * 연산으로 tuple(튜플)을 반복할 수 있습니다.
>>> t * 2
(1, 'korea', 3.5, 1, 3, 5, 1, 'korea', 3.5, 1, 3, 5)
  • tuple(튜플) 속에 tuple이 포함될 수 있습니다.
>>> a = ((1 ,2) , (3,4), (5,9))
>>> a[2]
(5, 9)
>>> a[2][1]
9
  • tuple(튜플)이 하나의 원소만 존재하는 경우는 tuple(튜플)이 되지않습니다.
  • but 회피하는 방법이 있습니다. 한개의 원소 뒤에 콤마를 찍어주면 tuple이 유지됩니다.
>>> h = (350)
>>> type(h)
<class 'int'>
>>> h = (350,)
>>> type(h)
<class 'tuple'>
>>> len(h)
1
  • 위에 예제들 속에서 tuple(튜플)은 '( )'를 입력했습니다만, 괄호가 필수 조건은 아닙니다.
>>> p = 1, 3, 2, 5, 7
>>> type(p)
<class 'tuple'>
  • tuple(튜플)을 이용하여 함수에서 여러 값을 한꺼번에 리턴시킬 수 있습니다.
>>> def minmax(items):
...     return min(items), max(items)
...  
>>> minmax([7,5,2,1,11,15,55])
(1, 55)
  • tuple(튜플)을 이용하여 변수를 한꺼번에 할당할 수 있습니다.(자바스크립트 ES6 해체할당과 비슷합니다.)
>>> lower, upper = minmax([7,5,2,1,11,15,55])
>>> lower
1
>>> upper
55
  • tuple(튜플)속에 tuple(튜플)을 이용해 이러한 할당도 가능합니다.
>>> (a, (b,(c, d))) = (4,(3,(2,1)))
>>> a
4
>>> b
3
>>> c
2
>>> d
1
  • 보통 다른언어에서 두 변수의 값을 서로 바꾸려면, 새로운 변수가 하나 필요하지만 파이썬에서는 튜플의 해체할당기능을 통해 바로 바꿔줄 수 있습니다.
>>> a = '감자'
>>> b = '고구마'
>>> a, b  = b, a
>>> a
'고구마'
>>> b
'감자'
  • tuple(튜플)변환 - tuple(iterable한객체)로 tuple(튜플)로 변형할 수 있습니다.
>>> tuple([1, 7, 5, 3, 9])
(1, 7, 5, 3, 9)
>>> tuple("abcde")
('a', 'b', 'c', 'd', 'e')
  • in 절로 포함되어 있는지 체크할 수 있습니다.

1. 다음 중 튜플의 특징이 아닌 것은 무엇입니까?

  1. 불변한 순서가 있는 객체의 집합이다.
  2. 다양한 타입의 값들을 포함할 수 있다.
  3. 생성 후 값을 변경할 수 있다.
  4. 인덱스를 사용하여 접근할 수 있다.

2. 다음 코드의 출력 결과로 올바른 것은 무엇입니까?

t = (1, "korea", 3.5, 1)
print(t[2])
  1. 1
  2. "korea"
  3. 3.5
  4. (1, "korea", 3.5, 1)

3. 다음 코드 실행 후 t의 값으로 올바른 것은 무엇입니까?

t = (1, 'korea', 3.5, 1)
t = t + (3, 5)
  1. (1, 'korea', 3.5, 1, 3, 5)
  2. (3, 5, 1, 'korea', 3.5, 1)
  3. (1, 'korea', 3.5, 1)
  4. ('korea', 3, 5, 1)

4. 다음 코드의 출력 결과로 올바른 것은 무엇입니까?

a = ((1 ,2) , (3,4), (5,9))
print(a[2][1])
  1. 1
  2. 4
  3. 5
  4. 9

5. 다음 코드 실행 후 type(h)의 결과는 무엇입니까?

h = (350)
  1. <class 'tuple'>
  2. <class 'list'>
  3. <class 'int'>
  4. <class 'str'>
더보기
더보기

3 3 1 4 3

문제 1 정답: 3. 생성 후 값을 변경할 수 있다. 튜플은 한 번 생성되면 그 값을 변경할 수 없는 불변형 데이터 타입입니다. 따라서 튜플의 값은 생성 후 변경할 수 없습니다.

문제 2 정답: 3. 3.5  튜플 t의 세 번째 요소인 t[2]는 3.5입니다. 인덱스는 0부터 시작합니다.

문제 3 정답: 1. (1, 'korea', 3.5, 1, 3, 5)  튜플 t에 (3, 5)를 더하면, t의 값은 (1, 'korea', 3.5, 1, 3, 5)가 됩니다. 튜플 간의 더하기 연산은 두 튜플을 연결하여 새로운 튜플을 만듭니다.

문제 4 정답: 4. 9  튜플 a의 세 번째 요소인 a[2]는 (5, 9)입니다. 그 요소의 두 번째 값인 a[2][1]은 9입니다.

문제 5 정답: 3. <class 'int'>  (350)은 튜플이 아니라 정수입니다. 하나의 요소만 있는 튜플을 만들려면 (350,)와 같이 뒤에 콤마를 붙여야 합니다. 따라서 type(h)의 결과는 <class 'int'>입니다.

코딩 문제

1. 다음 조건에 맞는 함수를 작성하십시오.

  • 함수 이름: minmax
  • 인자: 리스트 items
  • 반환값: items 리스트의 최솟값과 최댓값을 튜플로 반환
더보기
더보기
def minmax(items):
    return min(items), max(items)

# 예시
print(minmax([7, 5, 2, 1, 11, 15, 55]))  # (1, 55)

2. 다음 조건에 맞는 코드를 작성하십시오.

  • tuple_atuple_b의 값을 서로 바꾸는 코드를 작성하십시오.
  • tuple_atuple_b는 임의의 값으로 초기화되어 있습니다.
더보기
더보기
# 초기화 예시
tuple_a = (1, 2, 3)
tuple_b = ('a', 'b', 'c')

# 값을 서로 바꾸는 코드
tuple_a, tuple_b = tuple_b, tuple_a

# 결과 출력
print(tuple_a)  # ('a', 'b', 'c')
print(tuple_b)  # (1, 2, 3)
 
[angyeongeul sseusinikka deo bogi joteundeyo.]
You look better with glasses.