해당 포스팅은 제가 공부한 내용을 바탕으로 작성됐습니다!
만약 잘못된 내용이 있는 경우 하단의 댓글란에 알려주시면 감사하겠습니다
건전한 비판은 언제나 환영!
이전 포스팅에서 파이썬에서 변수를 선언하는 방법 및 숫자형, 문자형, 논리형, None 이라는 자료형을 살펴보았습니다.
이번 포스팅에서는 여러 변수들을 담을 수 있는 자료형인 list, tuple과 함께 시퀀스 자료형을 살펴보고자 합니다.
# 시퀀스 자료형?
시퀀스는 데이터가 순서대로 나열된 형식을 의미합니다. 이때, 데이터가 순서대로 나열되었다는 뜻일뿐 정렬되어있다는 의미는 아닙니다!
파이썬에서는 list, tuple, range, string, binary를 시퀀스 자료형으로 취급합니다.
1. 리스트 (list)
다른 프로그래밍 언어를 사용해보신 분이라면 배열과 비슷한 자료구조라고 생각하시면 이해가 편하실겁니다.
여러 데이터를 하나의 변수를 통해 관리하는 자료형이 바로 리스트입니다.
여기서 파이썬의 list가 다른 언어의 배열과 차별점이 있다면 list는 하나의 자료형만 담을 수 있는 것이 아니라 여러 자료형을 하나의 리스트 안에 담을 수 있습니다. (여기서 다른 언어는 C, Java와 같은 컴파일 언어 위주입니다.)
1 | a = [1, "str", True, None, [1, 2, 3]] | cs |
위 예시와 같이 하나의 리스트안에 Number(숫자형), String(문자형), Bool(논리형), None, List 자료형이 섞일 수 있습니다.
list를 생성하는 방법으로는 []와 list()를 사용하는 법이 있습니다.
단, list()는 이자로 튜플형태가 들어와야하며 주로 시퀀스 자료형을 list 자료형으로 변환하는데 사용합니다. PEP-8에서도 [] 로 리스트 생성하는 것을 추천하고 있습니다.
1 2 | a = [] # good! b = list() # not good! | cs |
위와 같이 생성한 리스트는 index 번호로 값을 읽어 들일 수 있습니다.
1 | a = [1, 2, 3, 4, 5] | cs |
위와 같이 a 리스트가 있다고 가정합니다.
컴퓨터 언어에서 보통 맨 처음 숫자는 0부터 시작합니다. 배열과 리스트의 인덱스 번호도 예외는 아닙니다. 따라서 위 a 리스트는 0부터 4까지의 번호로 리스트 내부의 값을 가져올 수 있습니다.
또한, 값을 바꿀 수도 있습니다. 인덱스로 배열의 값에 접근하여 할당 연산자(=)를 통해 다른 값을 넣을 수 있습니다.
1 2 | a = [1, 2, 3, 4, 5] a[0] = "영" # ["영", 2, 3, 4, 5] | cs |
위와 같이 0번째 인덱스, 즉 a 리스트의 첫번째 값을 a[0]으로 접근한 뒤 "영"이라는 값을 할당하면 a[0]에 있던 1이라는 값이 "영"이라는 문자열로 바뀌게 됩니다.
2. 튜플 (tuple)
튜플은 리스트와 유사하지만 []로 생성하는 리스트와는 달리 () 로 표현합니다.
1 2 | a = (1, 2, 3) print(type(a)) # <class 'tuple'> | cs |
위와 같이 괄호로 값을 묶으면 튜플이라는 시퀀스 자료형을 만들 수 있습니다. 튜플 또한 tuple()을 통해 생성할 수도 있고 다른 자료형으로 형변환 할 수 있습니다.
튜플이 리스트와 대부분 유사하지만 가장 큰 차이점이 있습니다. 바로 수정이 불가능한 immutable 객체라는 점입니다. 읽기만 가능합니다.
1 2 | a = (1, 2, 3) a[0] = 2 # TypeError: 'tuple' object does not support item assignment | cs |
위와 같이 튜플로 선언한 a 튜플에 첫 번째 값을 가져와 2라는 값으로 할당하는 경우 tuple에는 할당이 지원하지 않는다는 TypeError가 발생하게 됩니다.
이렇게 새로운 값을 할당하지 못한다는 것을 제외하고는 리스트와 유사합니다.
※ 참고!
리스트와 튜플 비교: https://www.programiz.com/python-programming/list-vs-tuples
3. range
range는 숫자의 시퀀스를 나타내기 위해 사용합니다. 주로 for문에서 많이 사용하는 것을 볼 수 있습니다.
range(n): 0부터 n-1까지의 범위
기본적으로 range(n)과 같이 하나의 number값을 인자로 주게 되면 0부터 n-1까지의 범위를 가지는 range 시퀀스 객체가 생성됩니다.
range(n, m): n부터 m-1까지의 범위
위와 같이 number 인자를 2개 주면 시작점을 설정할 수 있습니다.
range(n, m, step): n부터 m-1까지 범위에서 +step만큼 증가
마지막으로 3가지 number 인자를 주게 되면 1씩 증가하는 기본값을 사용자가 원하는데로 지정할 수 있습니다.
1 2 | a = range(5, 0, -1) print(list(a)) # [5, 4, 3, 2, 1] | cs |
range는 추후에 알아볼 for문과 밀접하게 사용됩니다. 충분히 익혀놓으면 큰 도움이 됩니다!
'Python' 카테고리의 다른 글
4. 파이썬의 변수와 자료형 (0) | 2018.07.08 |
---|---|
3. 파이썬의 문법 및 주석다는 방법 (0) | 2018.07.08 |
2. 파이썬 에티터 선택하기 (0) | 2018.07.07 |
1. 파이썬 환경 설정 (0) | 2018.07.07 |
0. 파이썬(python)이란? (0) | 2018.07.07 |