-자료구조란, 여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라 하고, 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 함
-자료구조는 각각의 컨테이너 자료형에 따라 차이가 있으며, 파이썬의 대표적인 컨테이너 자료형으로는 리스트(List), 튜플(Tuple), 딕셔너리(Dic), 셋트(Set)가 있음

-리스트란, 배열과 같이 여러 개의 데이터를 나열한 자료구조
-' [] '를 이용하여 선언하고, 데이터 구분은 ' , '를 이용
-숫자, 문자(열), 논리형 등 모든 기본 데이터를 함께 저장할 수 있음

-리스트에 또 다른 컨테이너 자료형 데이트를 저장할 수 있음

-리스트의 아이템을 조회할 때 인덱스를 이용함
-인덱스란, 아이템에 자동으로 부여되는 번호표로 0부터 시작
-리스트 길이란, 리스트에 저장된 아이템의 개수를 의미
-len()과 반복문을 이용해 리스트의 아이템 조회 가능
-for문 활용

-for문을 이용하면, 리스트 내부에 또 다른 리스트의 아이템을 조회할 수 있음

-while문 활용

-len()함수는 리스트의 개수뿐만 아니라 문자열의 길이도 알 수 있음
-enumerate() 함수를 이용하면 아이템을 열거할 수 있음

-enumerate() 함수는 문자열에도 적용 가능함
-append() 함수를 이용해 마지막 인덱스에 아이템을 추가할 수 있음

-insert() 함수를 이용하면 특정 위치(인덱스)에 아이템을 추가할 수 있음


-pop() 함수를 이용하여 마지막 인덱스에 해당하는 아이템을 삭제할 수 있음

-pop(n) 함수는 인덱스 n에 해당하는 아이템을 삭제할 수 있음

-remove() 함수를 이용해 특정 아이템 삭제 가능

-remove() 함수는 한 개의 아이템만 삭제 가능하기 때문에, 만약 삭제하려는 아이템이 2개 이상이라면 while문을 활용해야 함


-extend() 함수를 이용해 리스트에 또 다른 리스트를 연결(확장)할 수 있음
(ex. list1 = ['홍길동', '강호동'], list2 = ['박찬호', '이용규'] → list1.extend(list2) ▶ ['홍길동', '강호동', '박찬호, '이용규'])
-덧셈 연산자를 이용해서도 연결 가능함
(ex. list1 + list2 = ['홍길동', '강호동', '박찬호, '이용규'])
-sort() 함수를 이용해 아이템을 정렬할 수 있으며, 오름차순으로 정렬됨
-sort() 함수를 이용해 내림차순 정렬을 하고 싶을 때, sort(reverse=True)로 이용(reverse=False가 default이기 때문에 reverse=True로 해주어야 함)
-reverse() 함수를 이용해 아이템 순서를 뒤집을 수 있음

-리스트 슬라이싱 : [n:m]을 이용하여 리스트에서 원하는 아이템만 추출할 수 있으며, 문자열도 가능함(이때, 슬라이싱한 데이터의 타입도 List)

-슬라이싱할 때 단계를 설정해줄 수 있음. 이때 [2:-2:2]이면, 인덱스 2번부터 -2(뒤에서 부터 순서 계산하며, 즉 이 예문에서는 100이 -2번째에 있는 아이템)의 앞까지 두 단계씩 건너뛰면서 추출함 → [0.12, 9, 17]

-슬라이싱을 이용해 아이템을 변경할 수 있음. 이때 변경할 아이템을 입력하지 않으면, 해당 아이템은 삭제됨
(ex. student[1:4] = ['park chanho', 'lee yonggyu'] → ['홍길동', 'park chanho', 'lee yonggyu', '박승철', '김지은'])

-slice() 함수를 이용해 아이템을 슬라이싱 할 수 있음
