2020. 6. 10. 16:37ㆍInvestment Story/금융공학 - 파이썬
안녕하세요 자꿈두입니다.
오늘 공부할 내용은 리스트와 비슷한 자료형이지만
조금 다른 튜플(Tuple)입니다.
튜플은 리스트와 마찬가지로 다양한 데이터를 보관할 수 있는 자료형입니다.
그럼 리스트를 쓰면 되지 왜 튜플이란 자료형이 또 있느냐?
튜플은 리스트와 달리 안에 있는 데이터를 수정할 수 없습니다.
자료를 불변하게 만들고 싶으면 리스트가 아닌 튜플을 사용해야 하는 것이죠.
튜플 생성하기
리스트는 대괄호 [ ] 를 이용해서 만들었다면,
튜플은 소괄호를 ( ) 를 통해 생성합니다.
a = ('철수', '영희', '영구')
이렇게 말이죠.
어렵지 않죠?
리스트와 마찬가지로 순서대로 데이터를 저장하고,
인덱스와 슬라이싱을 통해 데이터에 접근 및 추출을 할 수 있습니다.
리스트에 대한 글은 이전 포스팅에서 알아보실 수 있습니다.
2020/06/09 - [경제 및 투자이야기/금융공학] - 11. 리스트 알아보기
튜플은 다만 데이터 변경을 하지 못하는 리스트입니다.
튜플과 리스트 자료형 변환
튜플 안에 있는 데이터를 수정하고 싶을 수 있을 땐 어떻게 할까요?
튜플을 리스트로 변환해주면 됩니다.
방법은 list()를 이용하면 됩니다.
보시다시피 a는 '철수', '영희', '영구' 라는 데이터를 가진 튜플입니다.
이를 리스트로 바꾸어보겠습니다.
반대로 이를 다시 튜플로 변환할 수 있겠죠.
방법은 tuple() 입니다.
즉, 튜플 내 데이터를 변환하고 싶으면
리스트로 변환하여 데이터를 변환할 수 있고
이를 다시 튜플로 변환하여 데이터 변환을 불가능하게 만들 수 있습니다.
패킹과 언패킹
튜플은 패킹과 언패킹을 지원합니다.
한 변수에 여러 데이터를 집어 넣으면
자동으로 패킹이 되어 튜플 형태의 자료형이 되는 것을 의미합니다.
말로 표현하면 이해가 잘 안되죠?
예시를 들어 표현하겠습니다.
보통 a라는 변수에 여러 데이터를 보관하려면
리스트나 튜플을 생성하여 만듭니다.
예를 들어
a = (1, 2, 3, 4, 5) 나 또는 a = [1, 2, 3, 4, 5]
이렇게 말이죠.
그런데,
a = 1, 2, 3, 4, 5
이렇게 하면 결과가 어떻게 될까요?
아직 a의 데이터 타입은 리스트나 튜플이 아니기에 에러가 날까요?
아닙니다.
자동으로 데이터가 패킹이 되어, a는 튜플 형태로 바뀝니다.
위의 예시처럼요.
그럼 언패킹은 무엇일까요?
언패킹은 반대로 데이터를 꺼내오는 것입니다.
대신 전달받을 변수가 꺼내올 데이터와 일치하여야 되겠죠.
a = (1, 2, 3, 4, 5)
라는 데이터에서
언패킹을 하려면 총 5개의 변수가 필요한 것입니다.
a1, a2, a3, a4, a5 = a
언패킹은 위와 같이 쓰이는데요.
예시를 보시죠.
위에 처럼 각 변수에 데이터가 쪼개져서 들어가는 걸 확인 할 수 있습니다.
만약에 데이터를 받을 변수가 부족하다면 어떻게 될까요?
이렇게 에러가 출력됩니다.
그럼 데이터를 꼭 하나씩 받아와야 할까요?
언패킹할 때 변수 앞 *를 붙여주면 지정된 몇개의 변수를 제외하고는 리스트 형식으로 받아옵니다.
예를 들어
a = (1, 2, 3, 4, 5)
a1, a2, *a3 = a
를 한다면,
a1 = 1
a2 = 2
a3 = [3, 4, 5]
이렇게 될테고요.
반대로
*a1, a2, a3 = a
를 한다면
a1 = [1, 2, 3]
a2 = 4
a3 = 5
가 되겠죠.
a1, *a2, a3 = a
를 한다면
a1 = 1
a2 = [2, 3, 4]
a3 = [5]
가 됩니다.
참고로 언패킹은 리스트도 지원합니다.
오늘은 리스트에 이어서,
튜플에 대해 알아보는 포스팅을 하였습니다.
감사합니다.
'Investment Story > 금융공학 - 파이썬' 카테고리의 다른 글
14. 집합(set) 알아보기 (0) | 2020.06.13 |
---|---|
13. 딕셔너리 알아보기 (0) | 2020.06.13 |
11. 리스트 알아보기 (0) | 2020.06.09 |
10. 반복문 알아보기 (0) | 2020.06.07 |
9. 조건문 알아보기 (4) | 2020.05.13 |