반응형

동빈나님의 파이썬(Python) 입문자용 초급 36장을 정리한 내용입니다.

 

Dictionary : 키(Key)와 값(Value)로 한 쌍을 원소로 가지는 자료형.

 

딕셔너리 선언

dict = {}

dict['안녕'] = 'Hello'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'
dict['안녕'] = 'Hi'

print(dict)
# >> {'안녕': 'Hi', '기적': 'Miracle', '노력': 'effort'}

print(dict['안녕'])
# >> Hi
# Key를 입력하면 Value를 반환

딕셔너리 삭제

dict = {}
dict['안녕'] = 'Hi'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'


del dict['기적']
print(dict)
# >> {'안녕': 'Hi', '노력': 'effort'}

딕셔너리 초기화

 dict.clear()

딕셔너리의 Key 혹은 Value 만 출력하기

dict = {}
dict['안녕'] = 'Hello'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'
dict['안녕'] = 'Hi'

# Key 출력
keys = dict.keys()
keys_list = list(keys)

# Value 출력
values = dict.values()
values_list = list(values)

# 확인
print(keys_list)
print(values_list)

딕셔너리 For문 활용

dict = {}
dict['안녕'] = 'Hello'
dict['기적'] = 'Miracle'
dict['노력'] = 'effort'
dict['안녕'] = 'Hi'

# i = index
# k = Key
for i, k in enumerate(dict):
    print("[인덱스 : ", i, "]", "한글 : ", k, "/ 영어 : ", dict[k])

딕셔너리 정렬

score = {}
score['호우박'] = 78
score['구우독'] = 99
score['좋아요'] = 85

# Key로 정렬(1)
print(sorted(score))

# Key로 정렬(2)
print(sorted(score.keys()))

# Key로 내림차순 정렬(1)
print(sorted(score, reverse=True))

# Key로 내림차순 정렬(2)
print(sorted(score.keys(), reverse=True))

# Value로 정렬
print(sorted(score.values()))

 

반응형
반응형

동빈나 님의 파이썬(Python) 입문자용  초급 35강 내용을 정리하였습니다.

 

동빈나님의 유튜브 바로가기

 

클래스(Class) : 반복되는 불필요한 소스코드를 최소화 하면서 현실 세계의 사물을 컴퓨터 프로그래밍 상에서 쉽게 표현할 수 있도록 해주는 프로그래밍 기술

 

인스턴스(instance) : 클래스로 정의된 객체를 프로그램 상에서 이용할 수 있게 만든 변수

 

클래스의 멤버 : 클래스 내부에 포함되는 변수
클래스의 함수 : 클래스 내부에 포함되는 함수. 메소드라고 부름.

class Car:
    # 클래스의 생성자
    def __init__(self, name, color):
        self.name = name    # 클래스의 멤버1
        self.color = color  # 클래스의 멤버2

    #클래스의 소멸자
    def __del__(self):
        print("인스턴스가 소멸되었습니다")

    # 클래스의 메소드
    def show_info(self):
        print("이름 : ", self.name, '/ 색상 : ', self.color)

위와 같이 클래스를 선언 한 후 인스턴스를 생성해서 사용하면 된다.

car1 = Car("소나타", "빨간색")
print(car1.name, '을(를) 구매했습니다!')
car1.show_info()
del car1 # 인스턴스를 메모리에서 삭제

생성자를 통해 클래스 멤버의 값을 직접 정의 해 줄 수도 있지만 다른 언어에서는 보안상의 이유로 getter/setter를 많이 이용한다 ! 이처럼 파이썬도 동일하게 할 수 있다.

   # Class에 Setter 메소드 추가
    def set_name(self, name):
        self.name = name

 

car1.set_name("크루져")
car1.show_info()

동일한 방식으로 다른 객체를 생성할 수 있다.

car2 = Car("아반떼", "검은색")
car2.show_info()

그러면 car1과 car2는 같을까? 다르다 !

print(car1 == car2) # 결과 : false
print(car1) # 결과 : <__main__.Car object at 0x037AB0D0>
print(car2) # 결과 : <__main__.Car object at 0x00DAB370>

print로 각 인스턴스를 확인해보면 서로 다른 메모리 공간에 할당된 것을 확인할 수 있다. 이는 여러번 호출하면 메모리에 부하를 일으 킬 수 있으므로, 사용 후 메모리 소멸을 해줘야 한다.

반응형

+ Recent posts