딕셔너리란?


사람은 누구든지 "이름" = "홍길동", "생일" = "몇 월 며칠" 등으로 나타낼 수 있다. 

이러한 대응 관계를 나타내는 자료형을 갖고 있는데, 이를 연관 배열(Associative array) 또는 해시(Hash)라고 한다.

파이썬에서는 이러한 자료형을 딕셔너리(Dictionary)라고 하는데, 즉 "people"이라는 단어에 "사람", "baseball"이라는 단어에 "야구"라는 뜻이 부합되듯이 딕셔너리는 Key와 Value를 한 쌍으로 갖는 자료형이다.

 

딕셔너리는 Key를 통해 Value를 얻는다. (리스트나 튜플은 순차적으로(sequential) 해당 요솟값을 구함)

baseball이라는 단어의 뜻을 찾기 위해 사전의 내용을 순차적으로 모두 검색하는 것이 아니라 baseball이라는 단어가 있는 곳만 펼쳐 보는 것이다.


딕셔너리의 키, 값 쌍 얻기 - items()

딕셔너리(dictionary)는 items()함수를 사용하면 딕셔너리에 있는 키와 값들의 쌍을 얻을 수 있습니다. 

>>> car = {"name" : "BMW", "price" : "7000"} 
>>> car.items() 
dict_items([('name', 'BMW'), ('price', '7000')]) 


items함수를 사용하면 딕셔너리의 값을 반복할때 키와 값을 접근하기가 매우 유용해집니다.

>>> car = {"name" : "BMW", "price" : "7000"} 
>>> for key, val in car.items():
...		print("key : {} value : {}".format(key,val)) 

key : name value : BMW 
key : price value : 7000 

Key, Value 쌍 얻기(items)

>>> a.items()
dict_items([('name', 'pey'), ('phone', '010-9999-1234'), ('birth', '1118')])

items 함수는 Key와 Value의 쌍을 튜플로 묶은 값을 dict_items 객체로 돌려준다.


출처

https://wikidocs.net/16

https://devpouch.tistory.com/75

 

[Python] 파이썬 딕셔너리 키, 값 쌍 얻기 - items()

딕셔너리의 키, 값 쌍 얻기 - items() 딕셔너리(dictionary)는 items()함수를 사용하면 딕셔너리에 있는 키와 값들의 쌍을 얻을 수 있습니다. >>> car = {"name" : "BMW", "price" : "7000"} >>> car.items() dict_items([('name'

devpouch.tistory.com

 

'Python' 카테고리의 다른 글

[python] self와 __init__의 이해  (0) 2023.03.30

Python의 클래스에 대한 이해


다른 언어와 동일하게 python에서도 클래스를 이용하여 보다 편리하게 함수를 다룰 수 있다. 참고로 클래스는 데이터나 처리의 정의 등을 하나로 정리해둔 모형과 같은 것이다. 

클래스를 사용하지 않고 함수 작성한다면 보통 다음과 같이 작성한다.

def some_function(something):
    print(something)

그러나 클래스를 이용한다면 기본적으로 다음과 같이 작성하게 된다.

class SomeClass:
    def __init__(self,something):
        self.something = something

    def some_function(self):
        print(self.something)

클래스 구성을 사용하는 메리트는 다음과 같다고 할 수 있다.

  • 글로벌 변수를 없애고, 모든 변수를 어떠한 스코프에 소속시킨다.
  • 몇 번이고 재사용할 수 있다.
  • 코드의 수정을 최소화한다.
  • 함수 실행중에, 함수 자신을 다시 호출하는 처리 등이 가능하게 하다.

 

 

클래스와 인스턴스


Python의 클래스에 정의된 데이터나 함수를 사용하기 위해 "인스턴스"를 생성할 필요가 있다.  인스턴스란, 클래스를 실체화한 것이다. 하나의 클래스에 대해서 인스턴스는 여러 개 생성하는 것도 가능하므로, 각각의 인스턴스에 각각 다른 데이터를 가지도록 할 수 있다. 

다음의 코드에서 a가 인스턴스가 된다. 즉, 아까 살펴 본 클래스(SomeClass)의 인스턴스가 a에 할당되어 있다고 할 수 있다.

a = SomeClass("some_value")

 인스턴스를 생성하는 것으로, 클래스 내에 기재된 함수를 호출할 수 있다. 지금까지 살펴 본 코드를 하나의 코드블록으로 작성하면 아래와 같다.

class SomeClass:
    def __init__(self,something):
        self.something = something

    def some_function(self):
        print(self.something)
        
a = SomeClass("some_value")
a.some_function()

#함수에서 print 내장함수를 사용하고 있으므로 some_value가 리턴된다.

 

 

클래스와 메소드


클래스 내에 기재되어 있는 함수를 다른 말로 메소드라고 부른다. 클래스 내에 여러 개의 메소드를 정의하는 것도 물론 가능하다.

class some_class:
    def __init__(self,something):
        self.something = something

    def some_function1(self):#메소드1
        print(self.something)

    def some_function2(self):#메소드2
        return self.something

 

 

self의 역할


 지금까지 봤던 클래스 안에 있던 self에 대해 찾아보니  "인스턴스 자신", "그 시점의 자신", "메소드의 임의의 인수"등 다양하게 부르고 있었다. 그러나 클래스의 구성을 취득할 때에 정형의 구문으로써 기억해두면 괜찮은 것 같다.

 

 

__init__의 이해


  self와 나란히 클래스 내에 등장하는 __init__에 대해서는 알아보자. __init__에 대해 간단히 정리하자면, 다음과 같다.

  • 컨스트럭터라고 불리는 초기화를 위한 함수(메소드)
  • 인스턴스화를 실시할 때 반드시 처음에 호출되는 특수한 함수
  • 오브젝트 생성(인스턴스를 생성)과 관련하여 데이터의 초기를 실시하는 함수

 __init__()은 반드시 첫 번째 인수로 self를 지정해야한다. self에는 인스턴스 자체가 전달되어 있다. 이로 인해, 최과 메소드 내에 인스턴스 변수를 작성하거나, 참고하는 것이 가능해진다. 클래스를 생성할 때에 지정한 인수는 초기화 메소드의 2 번째부터 작성해 나가면 된다.(something)

class SomeClass:
    def __init__(self,something):#constructor
        self.something = something

 클래스 구성에서 정보를 유지하기 위한 중요한 구성으므로 빼놓을 수 없는 것이라고 생각하면 좋을 것 같다. 이 구문에 의해 객체 생성할 때, 정보의 추가 기재를 간단히 할 수 있다.

 예를 들어, 여러 개의 정보를 변수로하는 클래스 구문에서의 처리를 실행하고 싶은 경우는 다음과 같이 쓸 수 있다.

class MyStatus:
    def __init__(self,age,name,height,weight):
        self.age = age
        self.name = name
        self.height = height
        self.weight = weight

    def print_name(self):
        print(self.name)

    def print_age(self):
        print(self.age)

    def print_height(self):
        print(self.height)

    def print_weight(self):
        print(self.weight)

a = MyStatus(34,"yamada",170,78)

 

참고자료

https://ct-innovation01.xyz/DL-Freetime/python01/

https://uxmilk.jp/39906

https://qiita.com/ishigen/items/2d8b6e6398743f2c8110

 

Pythonのselfとかinitを理解する - Qiita

本投稿のモチベーションとして、これまで2年ほどPythonを使って色々やった中で、未だにselfとかinitという構文を理解し使いこなせていない事に気後れを感じており、GWの10連休を利用して学習

qiita.com


출처

https://engineer-mole.tistory.com/190

'Python' 카테고리의 다른 글

[python] .items는 뭘까?!_딕셔너리  (0) 2023.03.30

+ Recent posts