Python - Dictionary { }

닉네임유저·2023년 7월 31일

Python - 기초 문법

목록 보기
3/13
post-thumbnail

Dictionary - 여러 개의 값을 (키 - 값) 구성으로 저장할 수 있는 자료 구조


파이썬의 구조중 리스트와 함께 많이 쓰이는 자료구조

많은 속성들을 가지고 있는 데이터를 만들때 쓰인다.

자료구조 자체가 Key : Value 구성으로 되어있음

Json 자료구조와 비슷하게 생김

순서가 없으며, 중복이 되지 않음 , 내용 추가, 삭제 가능


Dictionary 선언

# 선언
temp = {'item': 'coke', 'price': 2000, 'stock': 10}

dict 안의 dict을 선언 할때도 마찬가지로 Key - Value 형식으로 합니다.

# KEY : a, Value : item, price,quantity
temp2 = {'a': {'item': 'coke', 'price': 2000, 'quantitiy': 10}}

Tuple 들의 리스트

# Dictionary 변경
# 키 - 값 은 맞춰야함
# 콤마 ',' 를 활용하여 Key - value 를 구분함
temp3 = dict([                   
             ('item', 'coke'),
             ('price', 2000),
             ('stock', 10)
])

딕셔너리 추가 KEY - Value

temp['owner'] = 'Nickyou'

# 딕셔너리 추가된 버전 
temp = {'item': 'coke', 'price': 2000, 'stock': 10, 'owner': 'Nickyou'}

속성 확인

print('속성확인',type(temp))

'key' 값만 가져오기

print('키 값만 가져오기',temp.keys())

'key' 에서 특정 값만 가져오기

print('특정값',temp['price'])

'Value' 값만 가져오기

print(temp.values())

'Value' 에서 특정 값만 가져오기

print(temp['stock'])

딕셔너리에 특정 키가 존재하는지 확인하고 싶다면 'in' 키워드 사용하기

if 'price' in temp:
    print(temp['price']) # 'price' 가 존재하면 그에 대한 값을 출력한다.

키가 없을때 기본 값 반환하기

print(temp.get('price', 'default_value')) # price  존재하면 그에 대한 값을 반환한다.

딕셔너리 요소를 전부 가져오기

print(temp.items())

딕셔너리 comprehension

# 딕셔너리 컴프리헨션
numbers = {x: x**2 for x in range(1, 6)}
print(numbers)  # 결과: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25}

항목 제거하기

'del' 또는 'pop'을 사용하여 제거합니다.

'del' : 해당 키와 , 값을 모두 제거합니다.

'pop' : 주어진 키에 해당하는 값을 반환하고, 해당 키 - 값 쌍을 딕셔너리에서 제거합니다. , 만약 해당하는 키가 없을경우 , 두 번째 인자로 기본값 (default)를 반환합니다.

temp = {'item': '콜라', 'price': 2000, 'stock': 10}
del temp['price']
print(temp)  # 결과: {'item': '콜라', 'stock': 10}

temp = {'item': '콜라', 'price': 2000, 'stock': 10}
temp.pop('stock')
print(temp)  # 결과: {'item': '콜라', 'price': 2000}

항목 병합하기

temp = {'item': '콜라', 'price': 2000, 'stock': 10}
temp_2 = {'owner': 'Nickyou', 'rating': 4.5}
temp.update(temp_2)
print(temp)
# 결과: {'item': '콜라', 'price': 2000, 'stock': 10, 'owner': 'Nickyou', 'rating': 4.5}
profile
이것저것 다해보는 개발자

0개의 댓글