파이썬을 이해하기 위해서는 배열(array)의 필요성을 인식하고 동일한 자료형의 데이터가 여러 개 필요한 경우 변수를 하나씩 선언하여 사용할 수 있지만, 많은 자료를 처리해야 할 때는 하나씩 선언하는 것보다 여러 개를 한 번에 선언하고 각각의 데이터에 접근하여 처리할 수 있는 문법이 필요한데, 이를 배열이라고 하며 데이터 구조에 대하여 배울 예정이다.
구조체의 정의 및 리스트(List)
구조체란 다양한 자료형의 연관된 데이터를 묶어서 선언할 수 있도록 사용자 정의 자료형을 만드는 것을 의미한다. 즉, 템플릿(template)과 같은 역할을 하며, 구조체 정의는 메모리에 변수를 생성하지 않는다.그러면 사용자 정의 자료형이란 무엇일까? 일상생활에 다양한 형태의 문제를 해결하기 위해서는 기본 자료형만으로는 자료의 선언과 저장에 한계가 있으므로, 해결하려는 문제와 가장 가까운 자료구조를 사용자(프로그래머)가 직접 자료형으로 만들어서 문제를 해결할 수 있는 자료형이라고 볼 수 있다. 동일한 자료형의 데이터가 여러 개 필요한 경우에 배열을 사용하여 처리할 수 있지만, 성적 처리와 같이 학번, 점수, 학점 등 서로 다른 자료형을 가진 데이터를 함께 저장하고 처리하기 위해서는 새로운 자료형이 필요한 것처럼 말이다.
리스트(List)란 파이썬(Python)에서는 C언어의 배열, 포인터, 구조체 등을 활용하여 만든 리스트 데이터 구조를 기본으로 제공한다.
# 리스트 모양
a = [값, 값, 값, 값, ... ]
# 리스트를 안쓰면 귀찮은 이유
a, b, c, d = 10, 20, 30, 40
print(a) ## 10
print(b) ## 20
print(c) ## 30
print(d) ## 40
# 리스트를 사용
aa = [10, 20, 30, 40]
aa[0] ## 10
aa[1] ## 20
aa[2] ## 30
aa[3] ## 40
[ 리스트 조작 함수 ]
함수 * 많이쓰는 함수 |
설명 | 사용법 |
append() * | 리스트 제일 뒤에 항목을 추가한다. | 리스트이름.append(값) |
pop() * | 리스트 제일 뒤의 항목을 빼내고, 빼낸 항목은 삭제한다. | 리스트이름.pop() |
sort() * | 리스트의 항목을 정렬한다. | 리스트이름.sort() |
reverse() | 리스트 항목의 순서를 역순으로 만든다. | 리스트이름.reverse() |
index() | 지정한 값을 찾아서 그 위치를 반환한다. | 리스트이름.index(찾을 값) |
insert() | 지정된 위치에 값을 삽입한다. | 리스트이름.insert(위치, 값) |
remove() | 리스트에서 지정한 값을 제거한다. 단 지정한 값이 여러 개일 경우 첫 번째 값만 지운다. |
리스트이름.remove(지울 값) |
extend() | 리스트 뒤에 리스트를 추가한다. 리스트의 더하기(+)연산과 동일한 기능을 한다. |
리스트이름.extend(리스트) |
count() * | 리스트에서 찾을 값의 개수를 센다. | 리스트이름.count(찾을 값) |
del() | 리스트에서 해당 위치의 항목을 삭제한다. | del(리스트이름[위치]) |
len() * | 리스트에 포함된 전체 항목의 개수를 센다. | len(리스트이름) |
튜플(tuple)
리스트는 대괄호([ ])로 생성하고 튜플은 괄호()로 생성한다. 튜플은 값을 수정할 수 없으며 읽기만 가능하므로 읽기 전용의 자료를 저장할 때 사용하면 좋다. 튜플플은 괄호를 생략 가능하다. 단, 하나의 항목만 가진 튜플을 만들 때는 주의를 해야 한다.
# 튜플은 읽기 전용이므로 다음 코드는 모두 요류 발생.
tt1.append(40)
tt1[0] = 40
del(tt1[0])
# 하지만 튜플 자체는 del()함수로 지울 수 있음
del(tt1)
# 튜플이름[위치]
tt1 = (10, 20, 30, 40)
tt1[0] ##10
tt1[0]+tt1[1]+tt1[2] ##60
# 더하기 및 곱하기 연산
tt2=('A', 'B')
tt1 + tt2 ##(10, 20, 30, 40, 'A', 'B')
tt2*3 ##('A','B','A','B','A','B')
딕셔너리(dictionary)
중괄호({})로 묶여 있으며 키와 값의 쌍으로 이루어진다. 이는 키값을 이용하기 때문에 향후 머신러닝, 딥러닝에 많이 사용되게 된다. 하기와 같이 예를 들어 보겠다.
# 딕셔너리 생성
딕셔너리 변수 = {키1:값1, 키2:값2, 키3:값3, ....}
# 예시
dic1 = {1:'a', 2:'b', 3:'c'}
dic1 ##{1:'a', 2:'b', 3:'c'}
dic2 = {'a':1, 'b':2, 'c':3}
dic2 ##{'b':2, 'c':3, 'a':1}
# 이미 있는 키를 사용하면 쌍이 새로 추가되는 것이 아니라 기존의 값이 변경됨.
student1 = {'학번':1000, '이름':'홍길동', '학과':'열공학과'}
sutdent1['학과'] = '파이썬학과'
student1
## {'학번':1000, '이름':'홍길동','학과:'파이썬학과'}
'AI기초' 카테고리의 다른 글
파이썬 변수와 메모리 값객체 참조객체 함수 개념 호출방법 (0) | 2023.03.16 |
---|---|
파이썬(Python)의 개요 인터프리터 언어 객체지향 프로그래밍 동적타이핑언어 (0) | 2023.03.16 |
API(Application Programming Interface)의 개념 예시와 종류 (0) | 2023.03.14 |
컴퓨팅 사고력의 정의 구성요소 문제구조화 최근교육사례 (0) | 2023.03.09 |
댓글