파이썬에는 시퀀스 자료형이 있다.
시퀀스 자료형은 단어 그 자체에서도 알 수 있듯이 연속적인 값으로 이루어져 있다.
연속적이란 말은 각 값마다 인덱스의 숫자가 할당되어 있어 인덱싱이 가능하다는 것이다.
우선 리스트를 살펴보자.
리스트(list) - 가변(mutable)
리스트(list) 자료형은 다음과 같이 나타낼 수 있다.
1. 대괄호로 나타내는 기본적인 리스트
_list = ['Beer', 'Soju', 'Rice Whiskey']
print(_list)
['Beer', 'Soju', 'Rice Whiskey']
참고로 한 변수안에 쉼표(,)를 사용해 여러 개의 리스트를 넣을 수 있다.
_list = ['Beer', 'Soju', 'Rice Whiskey'],['오 막걸리 좋아요!', '가자~']
print(_list)
(['Beer', 'Soju', 'Rice Whiskey'], ['오 막걸리 좋아요!', '가자~'])
그럼 이럴 때 내가 두 번째 리스트 '가자~!'를 출력할 때는 어떻게 해야 할까?
_list = ['Beer', 'Soju', 'Rice Whiskey'],['오 막걸리 좋아요!', '가자~']
print(_list[1][1])
가자~
그럴 때는 위 처럼, 2번 째 인덱스[1]과 그 안의 2번 째 요소 인덱스[1]을 넣어주면 된다.
(인덱스 번호는 0부터 시작한다. 그렇기에 2가 아니라 1이다.)
2. 컴프리헨션(comprehension)을 사용해서 나타내기
우선 1부터 10까지를 담는 리스틀를 생성해보자.
_list = [x for x in range(1, 11)]
print(_list)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
컴프리헨션을 사용하면 굳이 for문 while문 같은 반복문을 변수 바깥에서 사용할 필요 없이 바로 변수 선언이 가능하다. 개꿀
또는 이중 배열을 사용할 수도 있다. (경우의 수 같은 문제 풀 때 개꿀)
_list = [(x, y) for x in range(1, 11) for y in range(1, 11)]
print(_list)
print(len(_list))
위에는 1부터 10까지 조합으로 각각 나타낼 수 있는 조합이 출력됐고, 밑에는 총 경우 수가 출력됐다.
*코드의 맨 마지막에 사용한 len() 함수는 변수의 길이를 반환해주는 역할을 한다.
튜플(tuple) - 불변(immutable)
리스트는 생성 된 후 추가나 삭제에 의해 값이 변경되는 특징을 가지고 있지만(가변),
튜플은 한 번 선언이되면 프로그램 실행내에서 값을 변경 할 수 없다(불변).
1. 소괄호로 나타내는 튜플
대괄호로 나타내는 리스트와 달리 튜플은 소괄호로 나타낸다. like this
_tuple = (73, "Sheldon Cooper")
print(_tuple)
(73, Sheldon Cooper)
만약 내가 저기서 Sheldon Cooper라는 문자열만 출력하고 싶다면?
인덱스를 활용하자.
_tuple = (73, "Sheldon Cooper")
print(_tuple[1])
Sheldon Cooper
그럼 또 만약 내가 Sheldon Cooper에서 이름인 Sheldon만 출력하고 싶다면?
_tuple = (73, "Sheldon Cooper")
print(_tuple[1][0:8])
print(_tuple[1][:-7])
Sheldon
Sheldon
다양한 방법으로 출력 가능하다.
2. immutable한 튜플
리스트는 가변적인 특성을 가지고 있는 반면, 튜플은 불가변성의 특성을 가지고 있다.
예를 들어보자.
_list = [3]
_list[0] = 7
print(_list)
[7]
리스트의 경우에는 초기에 '3'이라고 설정되어 있어도 나중에 7로 값을 바꾸면 최종적인 값은 3 -> 7로 변한다.
반면에 튜플은 값을 변경하려고 하면
_tuple = (73, "Sheldon Cooper")
_tuple[0] = 42
print(_tuple[0])
TypeError: 'tuple' object does not support item assignment
타입에러가 나게된다.
끝.
'Programming > python' 카테고리의 다른 글
파이썬 print()없이 출력하기 (0) | 2021.08.01 |
---|---|
__파이썬__.py(간단한 모듈 파일 생성 및 실행) (0) | 2021.07.31 |
__파이썬__.py(출력하기) (0) | 2021.07.17 |
__파이썬__.py (0) | 2021.07.17 |
Flask를 이용해서 나만의 웹 서버 구축하기(feat.사우스 파크) (1) | 2021.07.16 |