ko ko ko en en en ko ko cs zh cs ko ko ko ko ko ko ko ko ko en ko ko en en ko en ko ko ko en ko en la en ko ko ko ko en en ko en ko ko en ko ko ko ko en ko en ko ko ko ko ko ko ko ko ko ko fr ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko fi ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko ko fr ko ko ko en en ko en zh en en
COS Pro 2급 파이썬: 19.5 튜플 사용하기
◀ 19.4 리스트의 인덱스 활용하기19.6 퀴즈 ▶︎
변수에 값을 저장할 때 ( )(괄호)로 묶어주면 튜플이 되며 각 값은 ,(콤마)로 구분해줍니다. 또는, 괄호로 묶지 않고 값만 콤마로 구분해도 튜플이 됩니다.
튜플 = (값, 값, 값)
그럼 숫자가 5개 들어있는 튜플을 만들어보겠습니다.
a = (38, 21, 53, 62, 19)와 같이 변수에 괄호로 값을 저장하여 튜플을 만들었습니다(물론 숫자뿐만 아니라 문자열, 정수, 실수, 불, 리스트, 튜플, 딕셔너리, 세트, 함수 등도 넣을 수 있습니다).
튜플도 리스트와 마찬가지로 값에 접근할 때는 [ ]를 사용합니다.
하지만 튜플은 리스트와는 달리 요소의 값을 변경하거나 추가할 수 없습니다.
a[0] = 10과 같이 튜플에 인덱스를 지정한 뒤 값을 할당하려고 하면 에러가 발생합니다. 즉, 튜플은 읽기 전용 자료형입니다.
튜플의 요소 개수를 구할 때도 len을 사용합니다. 그리고 시작 인덱스와 끝 인덱스를 활용하는 방법은 리스트와 같습니다. 이 부분은 따로 설명하지 않겠습니다.
지금까지 요소가 여러 개 들어있는 튜플을 만들었습니다. 그럼 요소가 한 개 들어있는 튜플은 어떻게 만들까요? 다음과 같이 값 한 개를 괄호로 묶으면 튜플이 아니라 그냥 값이 됩니다. 여기서는 그냥 정수입니다.
요소가 한 개인 튜플을 만들 때는 ( )(괄호) 안에 값 한 개를 넣고 ,(콤마)를 붙입니다. 또는, 괄호로 묶지 않고 값 한 개에 ,를 붙여도 됩니다.
튜플 = (값, )
>>> (38, ) (38,) >>> 38, (38,)
튜플은 요소를 변경하거나 추가할 수도 없는데 값 한 개짜리 튜플은 왜 필요할까요? 나중에 함수(클래스)를 사용하다 보면 값이 아닌 튜플을 넣어야 할 경우가 생깁니다. 이때 값은 한 개지만 튜플을 넣어야 할 때 (값, )과 같은 형식을 사용해야 합니다.
참고로 a = () 또는, a = tuple()로 빈 튜플을 만들 수 있습니다. 빈 튜플은 쓸모가 없을 것 같지만 함수(클래스)에 튜플을 넣어야 할 때 사용합니다. 즉, 넣을 값은 없지만 튜플을 넣어야 할 때 ()와 같이 사용합니다.
이번에는 tuple을 사용하여 튜플을 만들어보겠습니다.
튜플 = tuple(리스트) 또는 튜플 = tuple(list())
튜플 = tuple(range(시작, 끝))
튜플 = tuple(range(시작, 끝, 증가폭))
>>> a = tuple([1, 2, 3]) >>> a (1, 2, 3) >>> b = tuple(range(10)) >>> b (0, 1, 2, 3, 4, 5, 6, 7, 8, 9) >>> c = tuple(range(10, 0, -1)) >>> c (10, 9, 8, 7, 6, 5, 4, 3, 2, 1) >>> d = tuple(range(5, 12)) >>> d (5, 6, 7, 8, 9, 10, 11) >>> e = tuple(range(10, 20, 2)) >>> e (10, 12, 14, 16, 18)
tuple([1, 2, 3])와 같이 tuple에 리스트를 바로 넣어도 되고, range를 사용해도 됩니다. 물론 range의 기능을 활용하여 특정 범위의 숫자를 넣거나 숫자의 순서를 역순으로 넣을 수도 있습니다.
그럼 list에 튜플을 넣으면 어떻게 될까요?
>>> list((1, 2, 3)) [1, 2, 3] >>> list(tuple(range(10))) [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list에 튜플을 넣더라도 list를 사용했으므로 최종 결과는 리스트입니다.
지금까지 리스트와 튜플의 다양한 사용 방법에 대해 알아보았습니다. 리스트와 튜플에서 가장 중요한 부분은 인덱스가 0부터 시작한다는 점입니다. 꼭 기억해두세요. 그리고 리스트(튜플)의 길이를 구하는 방법, 범위로 접근할 때 음수를 사용하는 방법, 끝 인덱스를 생략하는 방법은 자주 사용하므로 익혀 두는 것이 좋습니다.
참고 | 리스트와 튜플로 변수 만들기
리스트와 튜플을 사용하면 변수 여러 개를 한 번에 만들 수 있습니다. 이때 변수의 개수와 리스트(튜플)의 요소 개수는 같아야 합니다.
>>> a, b, c = [1, 2, 3] >>>print(a, b, c) 1 2 3 >>> d, e, f = (4, 5, 6) >>> print(d, e, f) 4 5 6
리스트와 튜플 변수로도 변수 여러 개를 만들 수 있습니다. 다음과 같이 리스트와 튜플의 요소를 변수 여러 개에 할당하는 것을 리스트 언패킹(list unpacking), 튜플 언패킹(tuple unpacking)이라고 합니다.
>>> x = [1, 2, 3] >>> a, b, c = x >>> print(a, b, c) 1 2 3 >>> y = (4, 5, 6) >>> d, e, f = y >>> print(d, e, f) 4 5 6
그리고 리스트 패킹(list packing)과 튜플 패킹(tuple packing)은 변수에 리스트 또는 튜플을 할당하는 과정을 뜻합니다.
a = [1, 2, 3]    # 리스트 패킹 b = (1, 2, 3)    # 튜플 패킹 c = 1, 2, 3      # 튜플 패킹
◀ 19.4 리스트의 인덱스 활용하기19.6 퀴즈 ▶︎
COS Pro 2급 C 언어
COS Pro 2급 파이썬
Unit 1. 소프트웨어 교육과 파이썬
Unit 2. 파이썬 설치하기
Unit 3. Hello, world!로 시작하기
Unit 4. 기본 문법 알아보기
Unit 5. 숫자 계산하기
Unit 6. 변수 사용하기
Unit 7. 문자열 사용하기
Unit 8. 입력 값을 변수에 저장하기
Unit 9. 출력 방법 알아보기
Unit 10. 산술 연산자 알아보기
Unit 11. 불과 비교, 논리 연산자 알아보기
Unit 12. if 조건문으로 특정 조건일 때 코드 실행하기
Unit 13. else를 사용하여 두 방향으로 분기하기
Unit 14. elif를 사용하여 여러 방향으로 분기하기
Unit 15. for 반복문으로 Hello, world! 100번 출력하기
Unit 16. while 반복문으로 Hello, world! 100번 출력하기
Unit 17.break와 continue로 반복문 제어하기
Unit 19. 리스트와 튜플 사용하기
19.2 리스트의 요소 접근하고 값 할당하기
19.3 리스트의 요소 개수 구하기
19.4 리스트의 인덱스 활용하기
19.7 연습문제: 리스트의 일부만 가져오기
Unit 20. 리스트와 튜플 응용하기
Unit 21. 2차원 리스트와 튜플 사용하기
Unit 22. 문자열 응용하기
Unit 23. 회문 판별과 N-gram 만들기
Unit 24. 함수 사용하기
- 이 사이트에 실린 모든 내용, 디자인, 이미지, 편집 구성의 저작권은 (주)도서출판 길벗과 지은이에게 있습니다.
- 저작권법에 의해 보호를 받는 저작물이므로 무단 전재와 복제를 금합니다.
- 책의 내용을 복제하여 블로그, 웹사이트 등에 게시할 수 없습니다.
- 링크, SNS 공유는 허용합니다.
서울시 마포구 서교동 월드컵로 10길 56 (서울시 마포구 서교동 467-9)
Copyright © 2016-2021 Coding Dojang