본문 바로가기
Python

python 간단 정리 - (11)

by shinbian11 2020. 2. 25.

이 파일은 제가 python 기초 강의를 들으면서 필기했던 내용들을 간단하게 정리한 것입니다.

 

혹시나 잘못된 정보가 포함되어있을수도 있기 때문에, 

python 내용을 아시는 분들중에 잘못된 내용을 잡아내신 경우에는 댓글을 달아주시길 바랍니다.

 

----------------------------------------------------------------------------------------------------

저는 이미 c언어를 공부한 이후에 파이썬을 공부하고 있는 터라, 필기 내용 자체가 아무래도 c언어와 파이썬의

차이점을 위주로 정리를 했습니다. 그렇기 때문에 python을 아예 모르시는 분은 이 문서를 읽기에 약간 불편함이 

있을수도 있다는 점 양해바랍니다. c언어를 어느정도 알고 이 문서를 보는걸 추천드립니다 ㅎㅎ

저도 아직 초보라 틀린 내용이 있을수 있고, 만약 그 부분을 잡아내신다면 댓글로 알려주시길 바랍니다.


 

들어가기 전에 리스트,딕셔너리,튜플의 기본적인 차이점 하나!

 

리스트: [  ] 로 묶는다

딕셔너리 : {   } 로 묶는다

튜플 : (   ) 로 묶는다

 

파이썬 초반에 배울때는 어떤 괄호로 묶어야 할지 맨날 헷갈렸네요..ㅜ

너무나 기초적인 것이지만 헷갈릴때가 있으니 절대 잊어먹으면 안됩니다.


 

<<튜플>>

 

=> 일단, 튜플은 여러가지 방법으로 만들수있다. 

 

1번째 방법) 

tuple1 = (1,2,3)

 

2번째 방법) 

tuple2 = 1,2,3

 

3번째 방법) 

list3 = [1,2,3]

tuple3 = tuple(list3)

 

 

 

=> tuple1과 tuple2와 tuple3은 모두 같다.

 

------------------------------------------------------------------------------------------

이때, 튜플은 리스트처럼 순서가 정해져있다. 즉 인덱스번호로 값을 가져올수있다.

=>즉, tuple3[0] = 1

------------------------------------------------------------------------------------------

=>튜플은 한번 만들고나면 변경할수없는, 순서가 정해진 값의 연속이다.

(튜플은 값의 변경과 삭제가 불가능)

즉, 

tuple3[0] = 5     (x)

del tuple[3]    (x)

tuple.pop(0)      (X)

등등..

다 안됨! 

튜플의 값을 바꾸어주고 싶다면, 리스트나 다른 것으로 형 변환을 해야만 한다...


 

<<튜플을 이용한 packing,unpacking>>

 

1) unpacking

->

 

c= (3,4)

d,e = c

 

>> 이떄 d = 3, e = 4이다. c의 값을 unpacking해서 d와 e에 넣었다

 

 

2) packing

f = d,e

>> f는 (3,4)이다. 이때 d와 e를 f에 packing 했다.

 

------------------------------------------------------------------------------------------

ex)

 

c = (3, 4)

d, e = c     # c의 값을 언패킹하여 d, e에 값을 저장

f = d, e     # 변수 d와 e를 f에 패킹


<<x,y 두개의 값을 바꾸는(Swap) 방법!!>>

 

1. 임시변수 temp 사용 (c언어에서 맨날 사용하던 방법!)

x = 5
y = 10
 
temp = x
x=y
y=temp
 
print(x,y) # x = 10, y = 5

2. 임시변수 사용 안하고 그냥 이렇게 하는게 더 편하다.

x = 5
y = 10
 
y,x = x,y #너무나도 간단하다!
 
print(x,y) # x = 10, y = 5

<<함수의 리턴값으로 여러값을 전달할수있다!!>>

def tuple_func():
    return 1,2
 
q,w = tuple_func()
print(q,w) # q : 1, w: 2

<<리턴값으로 튜플을 사용하는 경우....심화>>

list = [1,2,3,4,5]
for i,v in enumerate(list):
    print('{}번째 값: {}'.format(i,v))
    
#0번째 값: 1
#1번째 값: 2
#2번째 값: 3
#3번째 값: 4
#4번째 값: 5

----------------------------------------------------------------------------------------------------------

 

윗 코드를 이렇게 구현할 수도 있다.

lst = [1,2,3,4,5]
for a in enumerate(lst):
    print('{}번쨰 값: {}'.format(a[0],a[1]))
 
#0번째 값: 1
#1번째 값: 2
#2번째 값: 3
#3번째 값: 4
#4번째 값: 5

----------------------------------------------------------------------------------------------------------

또는 이렇게도 가능하다

lst = [1,2,3,4,5]
for a in enumerate(lst):
    print('{}번쨰 값: {}'.format(*a))
    
    #*a는 튜플 a를 쪼개어서 각각 넣어라!
 
 
#0번째 값: 1
#1번째 값: 2
#2번째 값: 3
#3번째 값: 4
#4번째 값: 5

<<enumerate 복습>>

lst = [1,2,3,4,5]
for a in enumerate(lst):
    print(a)

=> (0,1) (1,2) (2,3) (3,4) (4,5) 가 출력된다. (인덱스, 값) 로 출력된다! 왜냐하면, enumerate 때문이다.

 enumerate는 리스트의 'index번호' 와 'value(값)'을 반환한다!

즉 list의 첫번째 인덱스인 1이 맨처음 a에 들어가면, index번호인 0 과 value 인 1이 맨처음 a에 담긴다!

 튜플형식으로 (0,1)이 맨처음 출력되는것이다! 그 다음도 순서대로~~~


<<딕셔너리에서의 튜플>>

=>두가지방법 모두 가능!

ages = {'Tod' : 35, 'Jane' : 23, 'Paul' : 62}
 
for a in ages.items():
    print('{}의 나이는:{}'.format(a[0], a[1]))
ages = {'Tod' : 35, 'Jane' : 23, 'Paul' : 62}
 
for a in ages.items():
    print('{}의 나이는:{}'.format(*a)) #(딕셔너리에서도 역시 *a 가 가능하다! )

-> 

#tod의 나이는 35세이다.
#jane의 나이는 23세이다.
#paul의 나이는 65세이다.

# 두 출력 결과가 같다.

'Python' 카테고리의 다른 글

python 간단 정리 - (13)  (0) 2020.03.02
python 간단 정리 - (12)  (0) 2020.02.28
python 간단 정리 - (10) - <간단한 Tip!>  (0) 2020.02.24
python 간단 정리 - (9)  (0) 2020.02.24
python 간단 정리 - (8)  (0) 2020.02.24