리스트 외 다른 데이터 구조

0. 데이터 구조 학습 간 필요 관점

: 리스트/ 튜플/ 딕셔너리/ 집합 4가지 데이터 구조를 학습하는 데 있어 선언, 읽기, 추가, 삭제, 수정 5가지 관점에서의 가능 여부와 방법에 대해 이해하는 것을 목표로 학습해야 한다.

#데이터 구조 간의 변형이 가능하다는 특징이 있어 필요한 상황에 맞게 데이터 구조를 변형해가며  다양한 기능을 활용해야 한다.

1. 튜플

: 튜플을 사용하는 경우는 여러 개의 return 값을 받아 저장할 때 그리고 변수 간의 값을 서로 바꾸고자 할 때 주로 사용한다.

# 여러개의 return 값을 받을 떄
def quot_rem(x,y):
	quot = x//y
    rem = x%y
    return quot, rem  #해당 값 튜플 형태로 추출

# 변수 간의 값을 교환할 때
x=1
y=5

x,y = y,x  #x=5, y=1로 값 추출

- 선언 + 입력 : 변수명 = (1,2,3,4) 또는 tuple(1,2,3,4)
- 읽기 : 변수명[인덱스 번호]         #슬라이싱 활용 가능

- 추가 : 기본적으로 불가하지만, 튜플 간의 합을 통해 추가하는 것은 가능

tuple = (1,2,3)
print(tuple+tuple)
# 값으로 (1,2,3,1,2,3) 출력

- 삭제 : 불가

- 수정 : 불가

 

2. 딕셔너리 (사전)

#key만 출력하고자 할 때
print(data_dict.keys())

for key in data_dict.keys():
    print(data_dict[key])
    

#value만 출력하고자 할 때
print(data_dict.values())

#key와 value를 튜플 형태로 각각 출력하고자 할 때
print(data_dict.items())

for items in data_dict.items():
    print(items)

- 선언 + 입력 : 변수명 = {키 : 값, 키 : 값} 또는 dict(키 : 값, 키 : 값)
- 읽기 : 변수명[키]

- 추가 : 변수명[새로운 키] = 새로운 값

- 삭제 : del 변수명[제거할 키]

- 수정 : 변수명[수정할키] = 새로운 값

3. 집합 (set)

: 다른 데이터 구조와는 달리 순서 혹은 중복이 없다는 특징이 있다. 중복이 없다는 특징을 이용해 수많은 데이터 중 중복을 제거하고 싶을 경우 set()함수로 집합으로 변형시킨 후 다시 원복할 시 중복된 데이터를 제거할 수 있다.

# 데이터 구조 집합의 기본 활용
data1 = {'apple', 'strawberry','kiwi'}
data2 = {'apple','banana','kiwi'}

print(data1&data2)  #교집합
print(data1|data2)  #합집합
print(data1-data2)  #차집합
print(data1^data2)   #교집합의 여집합

# 집합의 특징을 활용한 중복 제거
alist_data = [1,2,3,1,2,3,1]
alist = set(alist_data)
list(alist)      #[1,2,3] 출력

- 선언 + 입력 : 변수명 = set(), 변수명 = {데이터1, 데이터2 ...}, 변수명 = set({데이터1, 데이터2 ...})
- 읽기 : 인덱스 번호를 지원하지 않음. 반복문을 통해 읽을 수 있음.

+ Recent posts