Base/Python

[Python] 파이썬 기초 4 - 딕셔너리(Dictionary)에 대한 정의와 기본적인 함수 사용법

반응형

# 파이썬 딕셔너리


# 범용적으로 가장 많이 사용되는 타입이다.
# 딕셔너리의 특징은 key 와 value의 대응 관계를 가지고 있는 type이다.
# 순서x , 키중복 x, 수정 O, 삭제 O
# {} 이와 같은 형태를 가진다.

 

※상식

oop라는 것은 현실에 존재하는 object(모든 객체들을)를 객체로서 프로그램에 넣어주는 작업을 한다.
클래스라는 것은 현실에 존재하는 명사적 특징과 동사적 특징을 한 틀에 넣어준다.
클래스는 프로그램상의 객체는 아니고 객체 자체를 만들어 낼 수 있는 템플릿이다.
dict이라는 클래스로 부터 생겨난 객체이다.

 

# 선언

temp = {}
print(type(temp)) # <class 'dict'>



# dict 생성 방법 1

dic01 = {'name': 'seop',
'age': 48,
'address': 'seoul',
'birth': '730910',
'gender': True}



# dict 생성 방법 2

dic02 = dict([('name', 'seop'),
('age', 48),
('address', 'seoul'),
('birth', '730910'),
('gender', True)])



# dict 생성 방법 3

dic03 = dict(name='seop',
age=48,
address='seoul',
birth='730910',
gender=True)

print('dic -', type(dic01), dic01)

# dic - <class 'dict'> {'name': 'seop', 'age': 48, 'address': 'seoul', 'brith':
# '730910', 'gender': True}

 

# dict의 내장함수 보기

print(dir(dic01)) 
# 해당 객체가 어떤 변수와 메소드(method)를 가지고 있는지 나열
- dict가 가지고 있는 변수와 메소드 나열

#['__class__', '__contains__', '__delattr__',
#'__delitem__', '__dir__', '__doc__', '__eq__', '__format__',....]

 



# 해당 키값의 유무를 판단

print('name' in dic01) # True

 


# 요소를 추가하는 방법

dic01['marriage'] = False
print(dic01) # {'name': 'seop', 'age': 48, 'address': 'seoul', 'brith': '730910', 'gender': True, 'marriage': False}

 

# 삭제 pop() , del

print("삭제")
del dic03['gender']
print(dic03) # {'name': 'seop', 'age': 48, 'address': 'seoul', 'brith': '730910'}

print('pop -', dic03.pop('birth')) # pop - 730910
print('dic03 - ', dic03) # dic03 - {'name': 'seop', 'age': 48, 'address': 'seoul'}

 


# 요소를 수정하는 방법

dic01['marriage'] = True
print(dic01) # {'name': 'seop', 'age': 48, 'address': 'seoul', 'brith': '730910', 'gender': True, 'marriage': True}



# 데이터 확인

print(dic01['birth']) # 730910



# 데이터 출력

print('dic03 - ', dic03['name']) # dic03 - seop
# print('dic03 - ', dic03['Name']) # dic03 - seop / 이름으로 가져올경우 잘못 가져오면 에러가 난다.
print('dic03 - ', dic03.get('name')) # dic03 - seop
print('dic03 - ', dic03.get('Name')) # dic03 - seop / get을 사용할때는 에러가가 나지 않는다.



# 길이 값

print('len - ', len(dic03)) # len - 5


# dict_keys - key 값을 반환

print('dict_keys -', dic03.keys()) # dict_keys - dict_keys(['name', 'age', 'address', 'brith', 'gender']) - dict 타입
print('dict_keys -', list(dic03.keys())) # dict_keys - ['name', 'age', 'address', 'brith', 'gender'] - list 타입으로 변환


# dict_values - values 값을 반환

print('dict_keys -', dic03.values()) # dict_keys - dict_values(['seop', 48, 'seoul', '730910', True]) - dict 타입
print('dict_keys -', list(dic03.values())) # dict_keys - dict_values(['seop', 48, 'seoul', '730910', True]) - dict 타입

 

# dict_itmes - key와 value를 반환

print('dict_keys -',
dic03.items()) # dict_keys - dict_items([('name', 'seop'), ('age', 48), ('address', 'seoul'), ('brith', '730910'), ('gender', True)])
print('dict_keys -', list(
dic03.items())) # dict_keys - [('name', 'seop'), ('age', 48), ('address', 'seoul'), ('brith', '730910'), ('gender', True)]#



# for문으로 값 반환하기

for key in dic03.keys():
	print("{0},{1}".format(key, dic03[key]))
# result
# name,seop
# age,48
# address,seoul
# brith,730910
# gender,True


for value in dic03.values():
	print(value)
# seop
# 48
# seoul
# 730910
# True

for (key, value) in dic03.items():
	print("key : {0}, value : {1}".format(key, value))
# key : name, value : seop
# key : age, value : 48
# key : address, value : seoul
# key : brith, value : 730910
# key : gender, value : True





반응형