2 분 소요

Data-Structures

  • data structure는 data를 구조화 하고 싶을 때 사용하는 것이다.
  • python에서 배워야할 data structure는 3가지가 있다.
    1. list
    2. tuple
    3. dictionary

list - method

  • list를 사용하는 방법은 variable를 만들고 값에 [ ] 대활호를 입력하면된다. 대괄호 안에는 data를 넣고 쉼표 , 를 사용해 data를 분리할 수 있다.
  • list를 print를 하면 list의 값이 그대로 나온다. 그 이유는 method를 사용하지 않았기 때문이다.
  • print ( ) 소괄호 안에 string이나 숫자를 입력하고 점 . 을 쳐보면 많고 다양한 function이 보인다.
    그 이유는 string이나 숫자 내부에는 많은 function와 결합이 되어 있기 때문이다.
  • 내부에 있는 function들은 function이라고 하지 않고 method이라고 한다.
    data뒤에 결합이나 연결되어있는 function은 method이라고 생각하면된다.

Python 공식 레퍼런스

method object

https://docs.python.org/ko/3.8/tutorial/classes.html#method-objects

string

https://docs.python.org/ko/3.8/library/string.html

읽어보면 좋은 class

https://docs.python.org/ko/3.8/tutorial/classes.html

List-mthod

  1. count(내 list의 특정value가 몇개 있는지 알려준다.)
days_of_week = ["Mon", "Tue", "Wed", "Thur", "Fri"]

print(days_of_week.count("Wed"))

image

  1. clear(list에있는 모든 value들을 없엔다. list에게 mutate를(modufy) 한것이다.)
days_of_week = ["Mon", "Tue", "Wed", "Thur", "Fri"]
days_of_week.clear()
print(days_of_week)

image

  1. reverse(list의 value들을 앞뒤 순서 바꿔버린다.)
days_of_week = ["Mon", "Tue", "Wed", "Thur", "Fri"]
days_of_week.reverse
print(days_of_week)

image

  1. append(list에 value을 추가할 수가 있다.)
days_of_week = ["Mon", "Tue", "Wed", "Thur", "Fri"]
days_of_week.append("Sat")
print(days_of_week)

image

  1. remove(list에 특정 value을 없앨 수가 있다.)
    days_of_week = ["Mon", "Tue", "Wed", "Thur", "Fri"]
    days_of_week.remove("Fri")
    print(days_of_week)
    

image

  1. 특정 값 접근하기
    • list에 특정 값을 갖고 싶다고할때 먼저 list를 가리키는 variable에 접근해서
      [ ] 대활호를 열고, 원하는 값의 숫자 순서 맞게 순서를 쓰면된다.
    • 주의해야할 점은 pc는 숫자를 0부터 세기 때문에 ex) 만약 list 3번째에
      (사람이 숫자 세는 방식) 원하느 값이 있다면 숫자 2를(pc가 숫자 세는 방식) 써야한다.
    • 뒤에서부터도 셀 수 있음 (맨 뒤가 -1, -2, -3…)

ex)

days_of_week = ["Mon", "Tue", "Wed", "Thur", "Fri"]
print(days_of_week[2])

image

Tuple

  • 리스트는 [ ]으로 둘러싸지만 튜플은 ( )으로 둘러싼다.
  • 리스트는 그 값의 생성, 삭제, 수정이 가능하지만 튜플은 그 값을 바꿀 수 없다.(불변성)
  • 접근하는 방식은 list와 똑같음
days = ("Mon", "Tue", "Wed")

image

Dictionary (key value pair/키와 값)

  • dictionary사용 방법은 variable를 만들고 값에는 { } 중괄호를 입력한다.
  • { } 중괄호안에는 먼저 속성을 만들고, : 클론을 입력하고, value을 쓰면된다. 그리고 더 data를 추가하고 싶으면 value다음에 , 콤마를 입력하고 다시 속정부터 작성하면된다.
  • dictionary와 다른 data structure의 차이점은 key와 value으로 이뤄져있다. 속성이 key이고, : 클론 다음이 value이다.
player = {
  "name": "nico",
  "age": 12,
  'alive': True,
}

print(player)

image

  • 그래서 특정 value를 접근하고 싶을때 get method를 하여 key를 입력을 하면 value가 뜬다.
    아니면 [ ] 대괄호를 이용해 가져오는 방법도 있다.
    [ ] 대괄호안에는 key를 작성하면 value값을 얻을 수 있다.
player = {
  "name": "nico",
  "age": 12,
  'alive': True,
  'fav_food': ['🍕','🍔']
}

print(player.get('age'))
print(player.get['fav_food'])

image

data제거

player = {
  "name": "nico",
  "age": 12,
  'alive': True,
  'fav_food': ['🍕','🍔']
}
print(player)
player.pop('age')
print(player)

image

새로운 key + value 추가

player = {
  "name": "nico",
  "age": 12,
  'alive': True,
  'fav_food': ['🍕','🍔']
}
print(player)
player['xp'] = 1500
print(player)

image

기존에 있는 key의 value에 추가하기

player = {
  "name": "nico",
  "age": 12,
  'alive': True,
  'fav_food': ['🍕','🍔']
}
print(player['fav_food'])
player['fav_food'].append('🍞')
print(player.get('fav_food'))

image

recap

  • 파이썬은 "nico" 이 데이터 조각 안에 다양한 function을 둘 수가 있음
  • dictionary 안에는 tuple도 가질 수 있고, 또다른 dictionary도 가질 수 있음
  • dictionary안에 있는 dictionary 안에있는 value가져오기
player = {
  "name": "nico",
  "age": 12,
  "alive": True,
  "fav_food": ("🍔","🍕"),
  "friend": {
    "name": "lynn",
    "fav_food": ["🍞"]
  }
}

print(player["friend"]["fav_food"])

image

  • dictionary는 mutable 함
player = {
  "name": "nico",
  "age": 12,
  "alive": True,
  "fav_food": ("🍔","🍕"),
  "friend": {
    "name": "lynn",
    "fav_food": ["🍞"]
  }
}

player['fav_food'] = "🌭"    
player.pop("alive")

player['friend']['fav_food'].append("🍿")

print(player)

image

  • player의 ‘fav_food’의 value자체가 핫도그로 바꼈고, ‘alive’라는 key는 없어졌으며,
    palyer안에 friend라는 key안에 fav_food라는 key안에 팝콘이라는 value를 추가함

댓글남기기