본문 바로가기
● 인공지능, 분석/20.12 생활 프로그래밍

튜플이란? j = 1,444,000이 튜플이 되는 이유?

by 0ver-grow 2021. 1. 7.
반응형

튜플이란?(출처링크1, 출처링크2)

튜플(tuple)은 몇 가지 점을 제외하곤 리스트와 거의 비슷하며 리스트와 다른 점은 다음과 같다.

  • 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 요솟값은 한 번 정하면 지우거나 변경할 수 없다
  • 튜플은 값을 변화시킬 수 없다는 점만 제외하면 리스트와 완전히 동일 (인덱싱[1], 슬라이싱[1:], 길이len, 연산)

 

튜플의 형태

# 빈 튜플을 제외하고 괄호를 쓰지 않아도 된다.
>>> t1 = () # 빈 튜플은 괄호
>>> t2 = (1,) # 원소가 하나라면 원소, 로 표시
>>> t3 = (1, 2, 3)
>>> t4 = 1, 2, 3
>>> t5 = ('a', 'b', ('ab', 'cd'))

튜플의 특징

1. 리스트와 비슷한 자료형2. 튜플은 리스트와 달리 원소값을 직접 바꿀 수 없기 때문에, 문자열에서 했던 것처럼 오려붙이는 방법을 써야한다

>>> p = (1,2,3)
>>> q = p[:1] + (5,) + p[2:]
>>> q
(1, 5, 3)
>>> r = p[:1], 5, p[2:]
>>> r
((1,), 5, (3,))

3. 튜플을 리스트로, 리스트를 튜플로 바꾸기

>>> p = (1, 2, 3)
>>> q = list(p)                  # 튜플 p로 리스트 q를 만듦
>>> q
[1, 2, 3]
>>> r = tuple(q)                 # 리스트 q로 튜플 r을 만듦
>>> r
(1, 2, 3)

튜플, 매개변수

>>> c = 10
>>> d = 20
>>> c, d = d, c                 
>>> print c,d
20 10

세 번째 줄에서 등호 왼쪽은 c, d라는 변수가 담긴 튜플이구요, 오른쪽은 d와 c의 값이 담긴 튜플입니다. 그래서 d의 값은 c로 들어가고, c의 값은 d로 들어갑니다. 이런 일들이 차례차례 일어나는 것이 아니고, 동시에 처리된다는군요.

이번엔 함수에서 튜플이 요긴하게 쓰이는 것을 보여드리지요. 아래의 함수는 인자(매개변수)를 주는 대로 받아먹는 함수입니다.

>>> def magu_print(x, y, *rest):        # 마구찍어 함수
...   print x, y, rest
...
>>> magu_print(1,2,3,5,6,7,9,10)
1 2 (3, 5, 6, 7, 9, 10)

이와 같이 마구찍어 함수는 인자를 두 개 이상만 주면 나머진 다 알아서 처리한답니다. 함수를 정의할 때 인자에 별표를 붙여두면 그 이후에 들어오는 것은 모두 튜플에 집어넣는 것이죠. 위에선 (3, 5, 6, 7, 9, 10)가 하나의 튜플로 묶였습니다. 꽤 쓸만할 것 같죠? 다른 언어로 이런 함수를 만들려면 고생 꽤나 해야 할 거예요. 인자를 두 개, 세 개 넣어서도 실험해 보세요.

j = 1,444,000의 타입은?

>>> tuple_j = 1,444,000
>>> type(tuple_j)
<class 'tuple'>
>>> re.sub(',','',tuple_j)
TypeError: expected string or bytes-like object
>>> str_j = '1,444,000'
>>> type(str_j)
<class 'str'>
>>> float(str_j)
>>> re.sub(',','',str_j)
'1444000'
반응형