자료 구조란?
프로그램에서 자료들을 저장하는 여러 가지 구조들이 있다.
이것을 자료 구조(data structure)라 부른다.
시퀀스
파이썬의 가장 기초적인 자료 구조는 시퀀스(sequence)이다.
시퀀스는 요소(element)로 구성되어 있고, 요소들은 요소 간에 순서가 있다.
시퀀스의 요소들은 번호를 부여받는데, 이 번호를 인덱스(index)라고 한다.
파이썬에는 아래의 6개의 내장 시퀀스를 가지고 있다.
- str
- bytes
- bytearray
- list
- tuple
- range
이 중에서 가장 많이 사용되는 것은 리스트와 튜플이다.
시퀀스에 속하는 자료 구조들은 아래의 동일한 연산을 지원한다.
- 인덱싱(indexing)
- 슬라이싱(slicing)
- 덧셈 연산(adding)
- 곱셈 연산(multiplying)
추가로 파이썬은 아래의 공통적인 내장 함수를 가지고 있다.
- len()함수: 시퀀스의 길이 반환
- max(), min() 함수: 최대값과 최솟값을 찾음
이 외에도 더 있지만 저 2개가 대표적이다.
튜플
튜플은 리스트와 아주 유사하지만, 리스트와 달리 내용을 변경할 수 없다.
리스트와 달리 튜플은 불편하게 느껴질 수 있다. 하지만, 튜플은 아래의 장점이 있다.
- 실수로 요소가 변경될 일이 없다.(리스트는 실수로 요소가 변경될 수 있다.)
- 리스트에 비해 접근 속도가 빠르다.(일처리가 빠르다.)
튜플은 다음의 형식을 가진다.
튜플을 생성하려면 소괄호 안에 요소들을 넣으면 된다.
아래의 예를 보자.
보시다시피 리스트와 매우 유사하다.
그리고 아래의 예처럼 튜플은 변경이 불가능하다.
-----
튜플을 합쳐서 새로운 튜플을 만들 수 있다.
리스트처럼 여러가지 자료형의 값을 섞어서 생성할 수 있다.
아래의 예를 보자.
튜플의 특징
1. 공백 튜플은 단순히 소괄호만 적어주면 된다.
2. 원소 한 개인 튜플은 마지막에 콤마를 하면된다.(콤마를 하지않으면 단순 수식 처리된다.)
3. 리스트로부터 튜플을 생성할 수 있다.
4. 괄호없이 콤마로 원소를 나열해도 튜플이 된다.
5. 튜플안에 다른 튜플을 가질 수 있다.
기본적인 튜플 연산들
파이썬 수식 | 결과 | 설명 |
len((1, 2, 3)) | 3 | 튜플의 길이 |
(1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 접합 |
('Hi!',) * 4 | ('Hi!', 'Hi!', 'Hi!', Hi!', Hi!',) | 반복 |
3 in (1, 2, 3) | True | 멤버쉽 |
for x in (1, 2, 3): print x, |
1 2 3 | 반복 |
함수 | 설명 |
len(t) | 튜플의 길이를 반환한다. |
max(t) | 튜플에 저장된 최대값을 반환한다. |
min(t) | 튜플에 저장된 최소값을 반환한다. |
tuple(seq) | 리스트를 튜플로 변환한다. |
튜플 대입 연산
파이썬은 튜플 대입 연산(tuple assignment)이라는 기능을 가지고 있다.
이 기능은 튜플에서 여러 개의 변수로 한 번에 값을 대입하는 기능이다.
아래의 예를 보자.
튜플에 값을 저장하는 과정을 튜플 패킹(tuple packing)이라고 부른다.
반대로 튜플에서 값을 꺼내서 변수에 대입하는 과정을 튜플 언패킹(tuple unpacking)라고
부른다.
'공부 > python' 카테고리의 다른 글
(python) 튜플, 세트, 딕셔너리, 문자열3 - 관련예제1 (0) | 2019.12.13 |
---|---|
(python) 튜플, 세트, 딕셔너리, 문자열2 - 세트, in 연산자(세트), for반복문(세트), 세트에 요소 추가 및 삭제하기, 부분 집합 연산, 집합 연산 (0) | 2019.12.13 |
(python) 리스트4 관련예제들1 (0) | 2019.12.12 |
(python) 리스트3 - 리스트 복사하기, 리스트와 함수, 리스트 함축, 2차원 리스트 (0) | 2019.12.08 |
(python) 리스트 2 - 시퀀스 자료형, 시퀀스에서 가능한 연산과 함수, 인덱싱, 슬라이싱, 리스트의 기초 연산 (0) | 2019.11.05 |