본문 바로가기

python

day19. 튜플 (연습문제:리스트일부만 가져오기)

#day.19

 

변수에 값을 지정할 때  ( ) 로 묶어주면 튜플이 되며, 각 값은 (,)로 구분해 준다.

 

- 튜플 = (값, 값, 값)

- 튜플 =  값, 값, 값

 

숫자가 5개 들어있는 튜플

a = (2, 5, 6, 7, 8)

>> (2, 5, 6, 7, 8)

 

a[0]

>> 2

 

하지만 튜플은 리스트와는 달리 요소의 값을 변경하거나 추가할 수 없다.

a = (2, 5, 6, 7, 8)

a[0] = 10

>>TypeError: 'tuple' object does not support item assignment

 

튜플에 인덱스를 지정한 뒤 값을 할당하려고 하면 에러가 발생한다. 즉, 튜플은 읽기전용 자료형이다.

튜플의 요소 개수를 구할 때도 len을 사용한다.

그리고 시작 인덱스와 끝 인덱스를 활용하는 방법은 리스트와 동일함!(day18 참고)

 

요소가 한 개 들어 있는 튜플은 그냥 값 한 개를 괄호로 묶으면 튜플이 아니라 그냥 값이 된다. (38) >> 38

요소가 한 개인 튜플을 만들 때는 ( ) 안에 값 한 개를 넣고 , (콤마)를 붙인다. 또는 괄호로 묶지 않고 값 한 개에 ,를 붙여도 된다.

- 튜플 = (값, )  ex) (38, ) >> (38,)

- 튜플 = 값,  ex) 38,  >> (38,)


tuple을 사용하여 튜플을 만들어보자.

-튜플 = tuple(리스트) 또는 튜플 = tuple(list))

-튜플 = tuple(range(횟수))

-튜플 = tuple(range(시작, 끝))

-튜플 = tuple(range(시작, 끝, 증가폭))

 

a = tuple([1, 2, 3])
a

>>(1, 2, 3)
b= tuple(range(10))
b

>>(0,1,2,3,4,5,6,7,8,9)
c= tuple(range(10, 0, -1))
c

>>(10,9,8,7,6,5,4,3,2,1,)
d= tuple(range(10, 20, 2))
d

>>(12, 14, 16, 18)

 

tuple에 리스트를 바로 넣어도 되고, range를 사용해도 된다. range의 기능을 활용하여 특정 범위의 숫자를 넣거나 숫자의 순서를 역순으로 넣을 수도 있다.

 

list((1, 2, 3))

>>[1, 2, 3]
list(tuple(range(10)))

>>[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

list에 튜플을 넣더라도 list를 사용했으므로 최종 결과는 리스트이다.

 


ex) a[3:6] = a[3:] = a[3:len(a)] (3번째 부터 마지막까지) 은 같은 값을 불러온다.

 

연습문제: 리스트의 일부만 가져오기

a = ['alpha', 'bravo', 'charlie', 'delta', 'echo']

b = [100, 200, 300, 400, 500, 600]

 

print a[2:]   #a[2:5], a[2:len(a)], a[-3], a[-3:5], a[-3:len(a)]

print b[:4]   #b[0:4], b[:-2], b[0:-2]

 

>>['charlie', 'delta', 'echo']

>>[100, 200, 300, 400]