보통 패킹된 데이터를 풀 때, index를 많이 활용한다.

가령 {'abc||def', 'abc2||def2', ....., 'abc10000||def10000'} 라는 set가 있다고 하자.[각주:1]

이 set에서 '||'를 구분자로 해서 자르고 앞 뒤를 각각 변수로 담는다고 하면,

for item in chr_set:
    first = item.split("||")[0]
    second = item.split("||")[1]

이런 형태로 구문을 쓸 수 있다.

그러나 파이썬에선 다음과 같은 형태로 언패킹을 할 수 있다.

for item in chr_set:
    first, second = item.split("||")

 

또 dict형태라고 하면,

snacks = {
    '과자': ('치토스', 120),
    '젤리': ('하리보', 70),
    '쿠키': ('칙촉', 90),
}
for kind, (name, cal) in snacks.items():
    print(kind, name, cal)

이렇게 순서쌍만 맞춰주면 바로 할당이 된다.

과자 치토스 120
젤리 하리보 70
쿠키 칙촉 90

 

특이하게도 서로간 값을 교환하는 경우에도 가능하다.

str_source = 'value'
str_target = 'value2'
print(str_source)
print(str_target)
str_source, str_target = str_target, str_source
print(str_source)
print(str_target)
value
value2
value2
value

 

  1. 뒤에 숫자는 그냥 붙여둔 것이고 사실상 그냥 랜덤한 값들이 차있다고 생각하자. [본문으로]

+ Recent posts