Today I Learned/Python & Pandas

파이썬(Python) array, list, tuple, set 함수 및 특징 정리

하나719 2023. 6. 8. 16:39
반응형

*특징 정리 표 

  list array tuple set
코드 형태 ["1",2,3,3] [1,2,3,3] ("1",2,3,3) {1,2,"3"}
중복 값 허용 여부 O O O X
index O O O X
수정 가능 여부 O O X O
다른 타입 데이터 삽입 여부 O X O O

1. list

동적으로 저장되어 연속된 메모리 주소 값 가지지 않을 수 있음

데이터를 추가 삭제에 용이함 

a = [1,2,3,"하나"]

#1. 끝에 요소 추가: append
a.append(3) 
# a = [1,2,3,"하나",3]

#2. 원하는 위치에 요소 추가:insert
a.insert(2,"두리")
# a = [1,2,"두리",3,"하나",3]

#3. 정렬: sort
# 데이터타입이 섞여있을경우 오류 발생
a.sort()

#4. 요소 뒤집기: reverse
a.reverse()
# a = [3,"하나",3,"두리",2,1]

#5. 요소 위치 반환: index
n = a.index("두리")
# n = 4 

#6. 요소 삭제: remove
a.remove(3)
# a = ["하나",3,"두리",2,1]
# 첫번째로 나온 값만 삭제하는 점 주의

#7. 요소 꺼내기: pop
# 맨 뒤에 요소 꺼내기
x = a.pop()
# x = 1 , a = ["하나",3,"두리",2]
# 특정 위치 요소 꺼내기 (값으로 지우지는 못하고, 특정 위치에 있는 요소를 지울순 있다.)
x = a.pop(0)
# x = "하나", a = [3,"두리",2]

#8. 요소 갯수 세기: count
n = a.count()
# n = 3 

#9. 리스트 추가하기: extend
a.extend(["+","-","*"])
# a = a = [3,"두리",2,"+","-","*"]​

 

2. array

같은 타입의 데이터만 가질 수 있음

그래서 연속된 메모리 공간에 저장되어 연산 속도가 빠르다는 장점이 있음

대신 데이터를 삭제하거나 추가할 때 배열의 크기가 크다면 느리다는 단점이 있음

 

3. Tuple

튜플은 리스트와 거의 동일한데, 한번 생성되면 수정이 불가능하다.

리스트는 수정될 것을 고려하여 처음 생성되었을 때 메모리를 더 많이 잡는데, 튜플은 수정이 되지 않기 때문에 최소한의 메모리만 잡아서 효율적이다. 그래서 변경되면 안되는 데이터들이나 변경될 이유가 없는 데이터들은 튜플로 생성하면 된다.

수정이 안되기때문에 remove, append, sort, insert 등의 함수 적용이 안되고 슬라이싱이나 index, len, count, in 은 가능하다. 

생성된 튜플을 수정할 수는 없지만 튜플끼리 더하거나 곱해서 새로운 튜플을 생성할 수는 있다.

 

4. Set

중복없이 유니크 한 값이 유지되는 집합 형태

한 번 생성된 값은 수정되지는 않고 추가 , 삭제 가능

단점은 순서가 없다는 점! 

a = {10, 20, 30 } 

#1. 요소 1개 추가: add
a.add(15) 
# a = {10,20,30,15}

#2. 요소 여러개 추가: update 
a.update([10,15,20,25,35]) 
# a = {10,15,20,25,30,35}

#3. 요소 삭제: remove
a.remove(35)
# a = {10,15,20,25,30}
a. remove(5)
# 없는값 삭제하려고 하면 오류남

#4. 요소 삭제2: discard
a.discard(5)
# 없는값 삭제해도 오류 안남 , None 값 출력 

#5. 값 확인: in / not in 
if 5 in a:
	print("yes")

b = {20,25,30,35}
#6. 교집합 연산: intersection, &
a.intersection(b)
a & b 

#7. 합집합 연산: union, |
a.union(b)
a | b 

#8. 차집합 연산: difference, - 
a.difference(b)
a-b

#9. set 초기화: clear()
a.clear() 
# a = {}

#10. set 삭제: del
del a
# set 삭제됨

차집합은 순서에 주의할 것!! 앞에서 뒤에꺼 빼는거라 순서에 영향 받음

 

반응형