NOW OR NEVER
[Python] 5. Python 자료구조(List, Tuple) 본문
파이썬 자료구조(List, Tuple)
- 정말 잘 알아야 능수능란하게 할 수 있고 적재적소로 활용 가능
- 기초 자료형 중 데이터를 담을 수 있는 한곳에 모아서 처리할 수 있는 데이터 타입
- 많은 변수를 사용하는 것은 비효율적이다. 코드도 많이 써야하고 수정사항이나 삭제사항을 다 찾아서 일일이 다 지워야 하는 번거로움이 있다. 코드 변경시 효율적이지 못하므로 자료구조를 활용해야 한다.
1. List 리스트
- 그릇이라 생각 하면 됨
- 배열(숫자의 모음, 학생의 모음 등)
- 순서가 있고 중복도 되며 수정도 가능하고 삭제도 가능해서 dictionary와 더불어 가장 많이 쓰는 데이터 타입
- 선언방식
-> 리스트 안에 리스트도 가능
-> 타입이 다른 데이터 같이 선언가능
->변수=[ ], 변수=list()
- 인덱싱
->문자열 한번 할당하면 변경할 수 없다. 내부적으로 한글자 한글자가 0부터 숫자로 인덱스로 할당되어 있기 때문이다.
-> 원하는 값 할당 가능
- 슬라이싱 (인덱스의 범위 지정시)
-> 범위에 해당하는 값들이 리스트 형태로 나옴
-> 값들보다 범위가 클 경우 범위 바로 이전 값까지 출력
- 연산
-> + : 여러 개의 리스트들을 더하면 하나의 리스트로 만들 수 있다.
-> * : 곱한 수만큼 리스트 안 데이터가 반복된다.
-> 값을 가져와서 연산을 할 수 있다.
- 수정
-> 리스트 특정 인덱스를 지정하여 그 리스트 내 데이터 부분 수정 가능
-> 리스트 특정 범위를 지정하여 그 범위 내에 있는 리스트 내 데이터 수정 가능(슬라이싱 했을 경우 하나의 리스트에 변경할 데이터들이 들어감)
-> 리스트 특정 인덱스를 선택후 또다른 리스트 자체를 값으로 넣으면 리스트 안에 또다른 리스트가 중첩된다.
- 삭제
->del 삭제할 데이터의 리스트[데이터의 인덱스]
- 함수
->리스트.append(추가할 데이터) : 리스트 내 끝부분에 데이터 삽입, 리스트 자체를 삽입
-> 리스트.extend(연장할 리스트가 담긴 변수) : 끝부분에 원소로서 하나의 리스트로 출력, 현재 리스트에서 값을 연장, append 함수와 다른 점 기억
->리스트.sort() : 리스트 내 데이터 오름차순 정렬
-> 리스트.reverse() : 리스트 내 데이터 역순 정렬
->리스트.insert(삽입할 인덱스 위치, 삽입할 데이터) : 리스트 해당 인덱스에 데이터 삽입, append함수와 다른 점 기억해두기
[삭제]
-> del
-> 리스트.remove(삭제할 데이터) : del일때는 인덱스 위치한 데이터를 지웠지만 이 함수는 데이터값을 통해 데이터를 지움
-> 리스트.pop() : 스택으로 LIFO(Last In First Out) 마지막에 들어간게 먼저 나온다는 뜻 이다. 리스트의 마지막 원소를 꺼내고 삭제, 계속 사용하면 언젠간 error 발생(빠지고 없어지고를 반복하면 비어있는 걸을 빼내려고 하니까 발생)
2. Tuple 튜플
- 순서 있음
- 중복 가능
- 수정 불가능 (수정함수 안됨)
- 삭제 불가능(삭제 함수 안됨)
- 계좌번호 등과 같은 중요 데이터들을 튜플에 넣고 사용하면 실행이 오작동 되거나 프로그램 흐름에 치명적인 영향을 주는 것을 방지할 수 있다.
- 선언방식
-> 변수 = ( )
-> 튜플 안에 튜플 선언 가능
- 인덱싱 가능
- 슬라이싱 가능
-> 슬라이싱 후 출력시 특정 인덱스부터 다 나오라고 할 시 끝에가 ,로 끝나야함
- 연산은 리스트와 동일한 방식으로 한다.
- 함수
->print(데이터 값 in 튜플) : 이 튜플 안에 이 데이터 값이 존재하는 지 확인 true/false로 반환
-> print(튜플.index(데이터 값)) : 튜플에서 이 데이터 값이 있는 인덱스를 반환
-> print(튜플.count(데이터 값)) : 튜플에서의 이 데이터 값의 갯수
'Back-End > Python' 카테고리의 다른 글
[Python] 6. Python 데이터 타입(자료형) Dictionary와 Set (0) | 2021.08.22 |
---|---|
[Python] 4. Python 문자열 및 연산자 (0) | 2021.08.20 |
[Python] 3. Python 가상환경 설정 및 데이터 타입&숫자형&연산자 (0) | 2021.08.19 |
[Python] 2. Python의 구성 요소 및 print 구문 이해 (0) | 2021.08.17 |
[Python] 1. Python 개발 환경 설정 (0) | 2021.08.17 |