본문 바로가기

개발/PYTHON

[Python] 파이썬 시작해보기_4

# 딕셔너리

= 리스트와 같이 다른 값을 여러 개 담을 수 있음

Java의 Map 정도로 생각하면 될 듯!

key:value를 여러개 담는 것!

사용 할 때에는 key값으로 호출하고 value값을 얻는다

dic = {  "key값!"  :  "value값!"  }

key값으로는 문자열, 숫자형, 튜플 사용 가능 (리스트)

value값으로는 어떤 타입이든 상관 없음

 

추가 dict['three'] = 3  → 리스트와 동일
수정 dict['one'] = 11
삭제 del(dict['one']) → 리스트와 동일
        dict.pop('two') → pop하는 값을 리턴 시켜준다

 

- 딕셔너리 반복문 활용

for key in ages.keys(): keys() 생략 가능 (딕셔너리일 때에는 keys()가 default)
    print(key)
for value in ages.values():
    print(value)
for key, value in ages.items(): →items() = key와 value 값 둘 다 가지고 옴
    print('{}의 나이는 {} 입니다'.format(key, value))


딕셔너리는 선언할 때의 값의 순서를 지키지 않는다.

(저장한 순서를 지키기 위해서는 list를 써야 함)

 

- 리스트와 딕셔너리 비교

공통점

  List Dictionary
생성 list = [ 1, 2 ,3 ] dict = { 'one':1, 'two':2 }
호출 list[ 0 ] dict[ 'one' ]
삭제

del( list[ 0 ] )

list.remove(값)

del( dict[ 'one' ] )
개수 확인 len( list ) len( dict )
값 확인 2 in list 'two' in dict.keys( )
전부 삭제 list.clear( ) dict.clear( )

차이점

  List Dictionary
순서 삭제 시 순서가 바뀌기 때문에 인덱스에 대한 값이 바뀐다 key로 값을 가져오기 때문에 다른 값의 삭제 여부와 상관없다
결합 list1 + list2 dict1.update( dict2 )

 

# 튜플

한 번 만들고 나면 변경할 수 없는 순서가 정해진 값의 연속!

tuple1 = (1,2,3) → 괄호 안 넣어도 되지만 명시해주는 게 보통!!!

생성시 리스트 값을 튜플에 부어줄 수도 있음

불러올 때에는 리스트와 같은 방식으로 불러올 수 있음 tuple[index]

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

 

# packing / unpacking

packing = 하나의 변수에 여러 값을 넣는 것

unpacking = 패킹된 변수에서 여러개의 값을 빼오는 것

- 두 변수의 값을 바꿀 때 임시변수가 필요 없다. ( x,y = y,x ) → temp 변수 따위 필요 없음
- 함수의 리턴 값으로 여러 값을 전달할 수 있다.

def test():

    return 1,2,3,4,5

a,b,c,d,e = test() → test함수의 return값들이 차곡차곡 차례대로 들어감

 

for문에 enumerate를 쓰면 한 번에 '인덱스(혹은 key)'와 '값(value)'을 튜플로 for문을 돌면서 return 해주는 거임

*tuple = tuple을 쪼개라 라는 뜻임

튜플 리스트 활용

for a in enumerate(list):

    print('{}번째 값: {}'.format(a[0], a[1]))

for a in enumerate(list):

    print('{}번째 값: {}'.format(*a))

튜플 딕셔너리 활용

for a in dict.items():

    print('{}의 나이는:{}'.format(a[0], a[1]))

for a in dict.items():

    print('{}의 나이는:{}'.format(*a))

반응형