TIL python dict

0

TIL

목록 보기
4/29
post-thumbnail

우선 파이썬의 데이터 타입들의 특징을 정리하고 갈 필요가 있다. python의 데이터 array타입 중에 어떤 요소를 써야 할지 궁금해서 검색을 해본 결과 나와 같은 궁금증을 가진 사람들이 많았다.

list vs tuple vs dict - stackoverflow

<참고>
파이썬 array 비교

답변을 대략적으로 정리하면

list : 순서가 존재 중복값 가능
dict , set는 순서가 없어서 인덱스로 조회가 불가능
dict의 key, set는 중복 값 포함 불가

Dict : 키와 값으로 구성
list, set는 값만으로 구성

set: 값들이 unhahsable 해야 한다. --hash함수에 사용 불가
hashable의 관해 작성한 글

tuple: immutable (수정불가능)

특히 딕셔너리는 각 키에 값들이 따라올 때 쓰면 좋은 array다.

battle_class = {
    
    'knight': {
        'hp': 100,
        'mp' : 50,
        'skill': 'swing'
    },
    'clerik' : {
        'hp': 50,
        'mp' : 100,
        'skill': 'heal'
    },
     'archer' : {
        'hp': 30,
        'mp' : 50,
        'skill': 'shoot'
    }
    
}   

battle_class['knight']['skill']    --> swing 

이 딕셔너리의 문법에 대해서 좀 더 정리해보기로 했다.

dictonary

dict key & value

dictionary는 키와 값으로 구성

{key : value}
x = {'a':10, 'b':20, 'c':30, 'd':40}

dict 값 변경하기

update

x = {'a':10, 'b':20, 'c':30, 'd':40}

new_dict = {"a": 90}
x.update(a)
  • key 값은 숫자 str 다 가능
    {1 : "king"}
  • update는 iterable object 이용가능
    x.update([[4,'Four'],[5,'Five']])
  • zip을 이용해서 zip([key], [value])표현 가능
    x.update(zip([6,7],['six'seven'])

dict 값 제거하기

pop

x.pop (key)

  • pop 같은 경우 특정 키값의 요소를 삭제 가능
  • pop한 아이템을 확인하고 싶다면 x.popitem()을 입력하면 된다( 다만 이 기능은 마지막 아이템만 가능 특정 키값은 불가 x.popitem(EMPTY) )

clear

x.clear

  • 키 값 전부 삭제

dict 키 값 조회하기

get
x.get('key')
items
x.items()
keys
x.keys()
values
x.values()

중요한 점은 .items , .keys , .values은 리스트가 아닌 iterable한 dict 객체로 잡힌다는 것이다. (데이터 타입 문제 발생 , 반복문 가능 )

dict_items([('a', 10), ('b', 20)('c', 30), ('d', 40)])
dict_keys(['a', 'b', 'c', 'd'])
dict_values([10, 20, 30, 40])

dict 표현식

x = {key : value for key, value in dict.fromkeys(keys).items()}

  • dictionary comprehension이라고 함
  • 해석 순서
    리스트 keys (리스트) --> dict.으로 dictionary로 바꿔주기
    dict.fromkeys(keys).items()로 dictionary 안에 키 &값 을 가져옴
    가져온 키 값을 key : value 형태로 배치

x = {key: value for key,value in x.items() if value != 20}

  • 조건문이 추가된 표현식
  • 값이 20인 키와 값을 제외하고 가져오기
profile
기록을 통해 한 걸음씩 성장ing!

0개의 댓글