본문 바로가기
* Language/Python

[Python] 파이썬 변수값 바꾸기(Swap)

by codinguser 2020. 10. 11.

파이썬 변수값 변경
파이썬 기초 문법

 

 

파이썬 변수값 바꾸기(Swap)


알고리즘 문제를 풀다가, 알게된 파이썬의 기초적인 문법이다.

언어 시작을 C로 잡았기 때문에 항상 temp를 이용해서 풀어왔었다.

하지만 파이썬에서는 바로 바꿔준다.

 

 

(1) 변수가 2개

1
2
3
4
5
6
7
8
= 1
= 10
 
a, b = b, a
 
print(a, b)
 
# 1 3
cs

 

 

(2) 변수가 3개

1
2
3
4
5
6
7
8
9
= 1
= 10
= 100
 
a,b,c, = c,b,a
 
print(a,b,c)
 
# 100 10 1
cs

 

(3) 변수가 4개

 

1
2
3
4
5
6
7
8
9
10
= 1
= 10
= 100
= 1000
 
a,b,c,d = d,c,b,a
 
print(a,b,c,d)
 
# 1000 100 10 1
cs

 

 

 

일반적인 자리 바꾸기(Low언어 방식)


1
2
3
4
5
6
7
8
9
10
= 1
= 10
 
temp = a
= b
= temp
 
print(a, b)
 
# 10 1
cs

 

 

1          10

ㅁ   ㅁ  ㅁ 

A  temp B  

 

ㅁ는 그릇이다.

 

A라는 그릇에 1이 담겨 있고 B라는 그릇에 10이 담겨있다.

이 때, 1이 담긴 그릇에 있는 것을 임시 그릇에다 옮기고 B그릇을 A에 옮기고

옮겨넣은 임시 그릇을 B그릇에다가 옮기면 된다.

 

 

 

 

Why 굳이 임시그릇을?


a = b

b = a

 

코딩을 처음 배웠을때 왜 굳이 임시그릇을 만들어야 하는가에 대한 방법적인것을 고민한적이 있었다. 그냥 a,b를 바꿔주면 안될까? 아래와 같이

1
2
3
4
5
6
7
8
9
= 1
= 10
 
= b
= a
 
print(a, b)
 
# 10 10
cs

 

하지만 결과는 내가 생각했던 것과 달랐다.

 

왜?

 

A) 바로 위에서 아래, 오른쪽에서 왼쪽으로 실행되는 순서로 인해

10의 값이 a에 저장되고 저장된 a의 값이 다시 b에 저장이 되기 때문에

 

결과적으로 10 10이 나온다.

 

댓글