Python 101 - 8장. 데이터 구조

hyukim·2020년 5월 27일
0

Python 101

목록 보기
8/10
post-thumbnail

데이터 구조

데이터 구조란 데이터를 효율적으로 나타내기 위한 특정 데이터 타입을 말한다. list(), tuple(), dict(), set() 등 많음

리스트(List; list())

  • 여러 데이터를 순서대로 나열한 데이터 구조이다.
  • 리스트는 변형 가능한(muttable) 데이터 구조임
  • 다른 언어의 배열과 비슷하지만 다름
  • 리스트의 원소는 같은 타입일 필요는 없다.
  • 0 ~ length – 1의 인덱스로 접근 가능하다. ex) list_name[index]
  • list1 + list2는 list1 뒤에 list2가 붙은 리스트가 리턴 된다.

메소드

  • list.append(value) : list의 맨 뒤에 value 원소를 추가한다.
  • list.insert(index, value) : list[index]에 value를 넣고 원래 있던 원소들을 뒤로 민다.
  • list.index(x[, start[, end]]) : list에 있는 원소 중 x와 같은 값을 가지고 있는 항목 중 가장 첫번째 인덱스를 리턴한다. start와 end 인수를 사용하여 찾는 범위를 지정할 수 있다.
  • list.pop([i]) : list의 i번째 값을 삭제하고 그 값을 리턴한다. i를 지정하지 않으면 가장 마지막 값을 삭제하고 리턴한다.
  • list.reverse() : list를 역순으로 변경한다.
_list = [1, 2, 3]
_list.append(12)		# [1, 2, 3, 12]
_list.insert(1, 6)		# 첫번째가 아닌 인덱스 1에 추가한다. [1, 6, 2, 3, 12]
k = _list.pop(0)		# k == 12, _list == [6, 2, 3, 12]
_list.reverse()			# _list = [12, 3, 2, 6]

for i in _list:
    print(i, end=' ')
# 12 3 2 6

튜플(Tuple; tuple())

  • 튜플은 변형 불가능한(immutable) 데이터 구조다. -> 수정할 수 없음
  • 리스트와 비슷하게 여러 데이터를 순서대로 나열한 데이터 구조이다.
  • 리스트의 원소는 같은 타입일 필요는 없다.
  • 인덱스로 접근 가능하다.

메소드

  • tuple.count(value) : tuple 안에서 value의 개수를 구함
  • tuple.index(i) : tuplei번째 인덱스 값을 리턴함
t = tuple()
t = (1, 4, 2, 5, 1)
t.append(1)		# AttributeError: 'tuple' object has no attribute 'append'
t.count(1)		# 파라미터 value의 개수를 구함 -> 2
t.index(2)		# 3

for i in t:
    print(i, end=' ')
# 1 4 2 5 1

딕셔너리(Dictionary; dict())

  • key-value로 연결 되어 있는 데이터 구조이다.
  • dict_name[key]로 value값을 조회 가능하다.
  • key 값은 string, int, float이 들어갈 수 있다.
  • for문으로 iterable 하게 조회 가능하다.
  • key는 중복될 수 없다.

메소드

  • clear() : 딕셔너리 객체를 비움 (dic = {}와 같음)
  • copy() : 딕셔너리 객체를 복사함 (dic = dic[:]와 같음)
  • get(key) : 딕셔너리에서 key라는 키의 value를 리턴함 (dic[key]와 같음)
  • items() : 각 (key, value) 형태의 튜플의 리스트를 리턴함
  • keys() : 딕셔너리 안에 있는 key들을 리스트 형태로 리턴함
  • pop(i) : 인덱스 i의 값을 삭제하고 리턴함
  • values() : 딕셔너리 안에 있는 value들을 리스트 형태로 리턴함
dic = {1 : 3, 2 : 14, "ite" : "val"}
d = dic.copy()
print(d)		# {1 : 3, 2 : 14, "ite" : "val"}
d.clear()
print(d)		# {}
print(dic.get("ite"))	# "val"
print(dic.keys())		# dict_key([1, 2, "ite"])
print(dic.values())		# dict_values([3, 14, "val"])

for i in dic:
    print(i, dic[i])	# i는 key, dic[i]는 key i에 대한 value가 리턴됨
profile
💪 🥩 🍺 ✈ 💻

0개의 댓글