b, a = a, b #이거 다른 언어 에서 안됨. ㄷㄷ
print(divmod(100, 9))
print(divmod(*(100, 9)))
print(*(divmod(100, 9)))
(11, 1)
(11, 1)
11 1
x, y, *rest = range(10)
print(x, y, rest)
0 1 [2, 3, 4, 5, 6, 7, 8, 9]
x, y, *rest = range(2)
print(x, y, rest)
0 1 []
x, y, *rest = 1, 2, 3, 4, 5
print(x, y, rest)
1 2 [3, 4, 5]
<aside> 💡 만약 x = 1, 2, 3, 4, 5 로 하면 tuple 형태로 저장된다. (1,2,3,4,5)
</aside>
l = (15, 20, 25)
m = [15, 20, 25]
print(l, id(l))
print(m, id(m))
(15, 20, 25) 1675295486592
[15, 20, 25] 1675297803648
l = l * 2
m = m * 2
print(l, id(l))
print(m, id(m))
(15, 20, 25, 15, 20, 25) 1675297436864
[15, 20, 25, 15, 20, 25] 1675297813120
numpy에서는 브로드캐스팅이라고도 하는데.. 전체 원소를 두배로 곱했는데 똑같은 거지만 새로운 변수에 입력했기 때문에 메모리 주소가 다르다.
뒤에 이걸 적어보자.
l *= 2
m *= 2
print(l, id(l))
print(m, id(m))
(15, 20, 25, 15, 20, 25, 15, 20, 25, 15, 20, 25) 2249697073904
[15, 20, 25, 15, 20, 25, 15, 20, 25, 15, 20, 25] 2249699946944
리스트는 메모리가 똑같아 진다. 그러나 튜플은 메모리 재할당이 이루어진다.
두 개 큰 차이가 있고, 맞게 잘 사용하라고 레퍼런스에 권장하고 있다.