자료구조
여러 개의 데이터가 묶여있는 자료형을 컨테이너 자료형이라고 하고 이러한 컨테이너 자료형의 데이터 구조를 자료구조라고 한다.
리스트(List)
배열과 같이 여러 개의 데이터를 나열한 자료구조.
- 각각을 아이템 이라고 호칭.
- 숫자, 문자(열), 논리형 등 모든 기본 데이터를 같이(함께) 저장할 수 있음. 리스트에 또 다른 컨테이너 자료형 데이터 저장 가능
1) 리스트 아이템 조회 : 인덱스로
2) 리스트 길이 : len()
3) 반복문 조회
(1) for x in list + if문 >> 원하는 내용만 출력하거나 출력하지 않도록 설정할 수 있음.
for idx, value in enumerate(리스트) >> 인덱스와 값 각각 출력 가능해짐. 자동으로 할당됨
(2) while 조건 >> 조건이 False가 되면 반복문 탈출.
while True + if ~ : break >> 무한으로 돌 수 있는 while True 상태에서 if문 조건 달성시 break로 탈출
flag = True ; while flag : if ~ flag = False >> 깃발 True 상태에서 if문 조건 달성시 False로 탈출
리스트 수정
1) 아이템 추가
(1) 리스트 변수명.append("추가할 내용") : append 함수로 마지막 인덱스에 아이템을 추가할 수 있다.
(2) 리스트 변수명.insert(인덱스 번호(끼어들 자리), "추가할 내용") : insert 함수로 내가 원하는 특정 위치(인덱스)에 아이템을 추가할 수 있다.
2) 아이템 삭제
(1) 리스트 변수명.pop() : 마지막에 있는 아이템을 삭제할 수 있다.
(2) 리스트 변수명.pop(n) : n 위치에 있는 아이템을 삭제할 수 있다.
(3) 리스트 변수명.remove("값") : 지정한 값에 해당하는 아이템을 삭제한다.
* 위 함수들은 한개의 아이템만 삭제 가능하다. 2개 이상의 데이터를 삭제하기 위해서는 while 문으로 삭제하자.
(4) del ls[1] : 인덱스 번호가 1인 아이템 삭제. []는 슬라이싱을 이용해서 변형 가능.
3) 리스트 연결
(1) 리스트 변수명(1).extend(리스트 변수명(2)) : 리스트 변수(1)에 리스트 변수(2)가 확장됨.
(2) 리스트 변수명(1)+리스트 변수명(2) : 리스트 변수(1)과 (2)가 연결되어 새로운 리스트가 됨.
4) 리스트 아이템 정렬
(1) 리스트 변수명.sort() : 오름차순 정렬.
(2) 리스트 변수명.sort(reverse=True) : 내림차순 정렬.
(3) 리스트 변수명.reverse() : 아이템 순서를 반대로 뒤집음.
5) 리스트 슬라이싱
(1) [n:m] : 인덱스 번호가 n <= x < m 인 아이템만 출력.
(2) [ :m] : 0부터 m-1까지 출력 | [n: ] : n부터 끝까지 출력
(3) [n:-m] : n부터 뒤에서 m번째 인덱스 까지 출력
(4) [-n:-m] : 뒤에서 n번째 인덱스에서, 뒤에서 m번째 인덱스 까지 출력
* 문자열도 슬라이싱 가능하다.
(5) 슬라이싱 단계 설정
- [n:m:o] : n부터 m-1까지 o 간격으로
- [::o] : 처음부터 끝까지 o 간격으로
- [n:m:-1] : n부터 m-1까지 거꾸로
(6) 슬라이싱을 이용한 아이템 변경
- ls[1:3] = ['a', 'b'] >> ls = ['x', 'a', 'b', 'x', ... ]
(7) 슬라이스 함수 : 리스트 변수명.slice(n, m) == ls[n:m]
6) 리스트 반복 : 곱셈연산
- 리스트를 곱셈하면 아이템이 곱한 수만큼 반복됨. ls = [a, b] > ls * 2 == [a, b, a, b]
7) 리스트 정보알기 함수
(1) index(item) : 아이템의 인덱스 번호를 알 수 있다.
(2) count(item) : 특정 아이템의 갯수를 알아낼 수 있음.
'코딩 어쩌구 > 자료구조와 알고리즘' 카테고리의 다른 글
[python] 함수 (0) | 2021.10.08 |
---|---|
[python] 자료구조 : 튜플과 딕셔너리 (0) | 2021.10.05 |
[python] 연산자와 조건문, 반복문 (0) | 2021.09.21 |
01 파이썬 기초 핵심과정(DB) (0) | 2021.09.06 |
01 파이썬 기초 핵심과정(모듈, 파일, 예외) (0) | 2021.09.06 |