haju__log

[python] 튜플 packing, unpacking, 함수의 리턴값으로 튜플 이용 본문

코테관련 이론

[python] 튜플 packing, unpacking, 함수의 리턴값으로 튜플 이용

haju 2023. 4. 30. 15:06
반응형

✅ packing

  • 하나의 변수에 여러 개의 값을 넣는 것

 

✅ unpacking

  • 패킹된 변수에서 여러 개의 값을 꺼내 오는 것

✅ 예제

c=(3,4)
print("c :", c)
d,e = c     #c의 값을 unpacking하여, d,e 값에 각각 넣음
print("d는 {}, e는 {}".format(d,e))

f=d,e       #변수 d와 e를 f에 packing함
print("f :", f)

 

✅ 튜플의 활용

  • 두 변수의 값을 바꿀 때, 임시변수가 필요 없다.
# 변수 값 서로 바꾸기
x=5
y=10
print("x:",x,"y:",y)
tmp=x
x=y
y=tmp
print("x:",x,"y:",y)

#임시 변수 없이 바꾸기
x=5
y=10
print("x:",x,"y:",y)
x,y=y,x
print("x:",x,"y:",y)

 

  • 함수의 리턴 값으로 여러 값을 전달할 수 있다.
def tuple_func():
    return 1,2

q,w = tuple_func()
print("q:{}, w:{}".format(q,w))


✅ 튜플을 이용한 함수의 리턴값

  • 튜플 리스트 활용
list=[1,2,3,4,5]
for i,v in enumerate(list):
    print('{}번 째 값: {}'.format(i,v))
#기존에 배운 enumerate()를 사용하면, i와 v 값이 for문을 돌면서 튜플로 return 해주는 것임!

#튜플 값은 꼭 2개로 나눌 필요 없고, 하나의 변수로 받을 수 있기 때문에 아래 예시처럼 a 하나로 받을 수 있음!
for a in enumerate(list):
    print('{}번 째 값: {}'.format(a[0],a[1]))

#튜플 앞에 *을 붙이면 튜플을 쪼개라는 뜻으로, 이렇게 활용도 가능하다.
for a in enumerate(list):
    print('{}번 째 값: {}'.format(*a))

 

  • 튜플 딕셔너리 활용
ages={'Tod':35, 'Jane':23, 'Paul':62}
for key,val in ages.items():
    print('{}의 나이는 : {}'.format(key,val))

#같은 표현1
for a in ages.items():
    print('{}의 나이는 : {}'.format(a[0],a[1]))
    
#같은 표현2
for a in ages.items():
    print('{}의 나이는 : {}'.format(*a))

반응형