집합 자료형 정리 (List V.S. Tuple)

sj950902·2020년 11월 21일
1
post-thumbnail
자 ! 오늘은 파이썬의 집합 자료형 중 List와 Tuple에 대해서 정리해보겠습니다.

1. List

List 는 한글로 '목록'이란 뜻을 가지고 있듯이, 데이터를 나열하기 위해 사용되는 자료형입니다. 기본적으로 "[]" (대괄호) 속에 데이터를 저장하고, 자바의 ArrayList 와 다르게 아래와 같이 한 리스트에 다른 종류의 변수가 들어갈 수 있습니다. 가장 큰 장점은 다양한 방식으로 데이터를 관리할 수 있다는 점인것 같습니다.


List1 = ["사과",10,alphabet]

1-1 리스트에 값 추가하기

List1.append('seungjae') 	# ["사과",10,alphabet,"seungjae"]
				# 마지막 자리에 추가됨

1-2 리스트에 값 삭제하기

List1.remove("사과") # [10,alphabet,"seungjae"]
			# 해당 값과 같은 element 를 삭제시킴
            		# 해당 값이 리스트 안에 없을경우, ValueError를 return 함

1-3 리스트의 값 뽑아오기

a = List1.pop(1) # [10,"seungjae"]
		# 해당 위치의 값을 뽑아옴
        	# a = alphabet

1-4 리스트 인덱싱 (slicing)

list_a = [1,2,3,4,5,6,7,8]	# 가장 맨 왼쪽의 element부터 position 값이 0 ,1 ,2 ... 이런식으로 상승함
list_b = List1[3:5] 	# position 3번부터 5번전까지 불러옴
        		# list_b = [4,5]

기타 등등... 너무 많아서 여기서 스탑하지만, 일단 알아두셔야 되는 것은 자유롭게 리스트안에 있는 값들을 변경할 수 있는 방법이 여럿 존재하기 때문에 각 상황에 맞추어서 적절하게 사용한 한다면 정말 유용한 데이터 타입인거 같아요 ! 개인적으로는 파이썬의 자료형 중 가장 매력적으로 보이는 클래스이기도 합니다. ㅎㅎ


2. Tuple

Tuple은 리스트와 마찬가지로 다량의 데이터를 저장하기 위해 사용되는 자료 집합형입니다.

List와 비슷한 점들

location = 3,10,103	#(3,10,103) # Tuple example
location[1] = 10	# List와 같이 position을 이용한 Indexing이 가능합니다.
length = len(location) 	# length = 3 
			# List도 위와 같이 길이를 가지고 있으며, len("element") 을 통해서 길이를 구할 수 있다.

List와 다른 점들

이 타입의 가장 큰 특징은 바로 "불변성" 인데요. 리스트와 같이 Tuple안에 있는 데이터를 직접적으로 변경을 할 수 없습니다. 이 특징때문에 불편하게 Tuple을 왜 사용할까? 라는 의문이 생겼었는데요.

이 링크를 확인하시면, tuple의 생성시간이 list의 생성시간보다 더 빠른 것을 확인하실 수 있습니다. 하지만, 이는 요소들의 숫자가 10개 정도였을때고, 기하급수적으로 1000개 이상의 요소들의 집합을 만들때라면 아래와 같이 별로 차이가 안나는 것을 확인할 수 있죠. 저는 여기서 생각한게 확실히 사이즈가 적은 규모의 tuple을 여러개 생성할때는 List보다는 연산 처리를 더 빠르게 할 수 있겠다는 점이였습니다. 반대로 한 집합에 많은 양의 데이터를 저장해야되는 상황이라면, 불변객체인 Tuple 보다는 가변객체인 List로 더 편하게 데이터를 다루는 것이 좋겠다고 생각하게 되었네요.

zwmiller.com/blogs/python_data_structure_speed.html

profile
# 백엔드개발자 # 기억보단 기록을

0개의 댓글