본문 바로가기
Programming/Python

[Python] 데이터 구조

by goatlab 2023. 6. 9.
728x90
반응형
SMALL

배열 (Array)

 

 

배열은 같은 데이터 타입의 요소들을 순서대로 저장할 때 유용하다. 배열은 리스트보다 적은 메모리를 사용하며, 자료 구조의 각 요소가 사용하는 메모리 공간 크기가 같기 때문에 효율적으로 동작한다. 요소가 연속된 공간에 순서대로 저장되기 때문에 요소를 삽입하거나 제거할 때 배열 전체를 수정해야 한다는 문제가 있다.

 

import array

arr = array.array('i', [1, 2, 3, 4, 5])

print("Array : ", arr)

 

리스트 (List)

 

리스트는 데이터 타입이 같거나 다른 요소들을 순서대로 저장할 때 유용하다. 리스트는 변경 가능하므로 요소를 수정할 수 있다. 각 요소를 독립된 공간에 저장하고 요소의 주소를 서로로 참조하여 연결한다. 요소가 모두 다른 위치에 있고 주소로 연결되기에 삽입과 삭제가 간단하다. 요소가 고정된 위치에 없기 때문에 특정 값을 읽는 데 비효율적이다.

 

list = [1, "hello", 0.5, True]

print("List : ", list)

list[1] = "world"

print("Updated List : ", list)

 

튜플 (Tuple)

 

튜플은 같거나 다른 데이터 타입의 요소들을 저장할 때 유용하다. 튜플은 기본 자료형은 아니지만 함수에서 여러 개의 값을 반환하기 위해 추가된 자료 구조이다. 서로 같거나 다른 데이터 타입의 요소를 열거할 수 있지만 값이 나열된 순간 길이가 고정되어 메모리 공간을 최적화하기에 수정이 불가능하다. 튜플은 리스트에 비해 더 적은 메모리를 차지한다.

 

tuple = [1, "hello", 0.5, True]

print("Tuple : ", tuple)

 

집합 (Set)

 

집합은 같거나 다른 데이터 타입의 요소들을 중복 없이 저장하기 위한 자료 구조이다. 값이 중복되지 않아 집합 연산에 주로 쓰이고 요소의 순서가 따로 없다. 집합은 변경 가능하므로 수정할 수 있다. 하지만 순서가 없으므로 요소에 접근할 수 없다.

 

set = [1, "hello", 0.5, True]

print("Set : ", set)

 

딕셔너리 (Dictionary)

 

딕셔너리는 같거나 다른 데이터 타입의 키-값 쌍 요소를 저장할 때 유용하다. 성능을 버리고 나머지 자료 구조의 장점을 모두 가져온 자료 구조이다. key-value 쌍은 순서가 따로 없다. 딕셔너리는 변경 가능하므로 항목을 수정할 수 있다.

 

dict = {
	"name" : "Kim",
    "age" : 20,
    "city" : "Seoul"
}

print ("Dictionary : ", dict)

dict["age"] = 25
print("Updated Dictionary : ", dict)

 

locales

 

locals()는 로컬 심볼 테이블 딕셔너리를 가져오는 메서드로 업데이트 또한 가능하다. 이 함수는 로컬에 선언된 모든 변수를 조회할 수 있는 강력한 명령이므로 디버깅에 많은 도움이 된다.

 

import pprint

pprint.pprint(locals())

{
	'nums': [2, 7, 11, 15],
    'pprint': <module 'pprint' from '/usr/lib/python3.11/pprint.py'>,
    'self': <__main__.Solution object at 0x7fdb1bb63dc0>,
    'target': 9
}
728x90
반응형
LIST