산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Industrial programming >> python

파이썬 튜플(Tuple) 완벽 가이드: 정의, 사용법, 리스트와의 차이점

이전 페이지 다음 페이지  

튜플(tuple)은 순서가 있고 불변(immutable)인 객체 컬렉션입니다. 튜플은 리스트처럼 시퀀스입니다. 튜플과 리스트의 차이점은 튜플은 리스트와 달리 변경할 수 없고, 튜플은 괄호를 사용하는 반면 리스트는 대괄호를 사용한다는 것입니다.

튜플 생성은 다른 쉼표로 구분된 값을 넣는 것만큼 간단합니다. 선택적으로 이 값들을 괄호로 감쌀 수도 있습니다. 예를 들어:

tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5);
tup3 = "a", "b", "c", "d";

빈 튜플은 아무것도 없는 두 괄호로 작성합니다.

tup1 = ();

단일 값을 포함하는 튜플을 쓰려면 값이 하나뿐이더라도 쉼표를 포함해야 합니다.

tup1 = (50,);

문자열 인덱스처럼 튜플 인덱스는 0부터 시작하며, 슬라이싱, 연결 등이 가능합니다.

튜플 값 접근

튜플에서 값에 접근하려면 인덱스나 인덱스들과 함께 대괄호를 사용하여 슬라이싱하여 해당 인덱스에서 사용 가능한 값을 얻으세요. 예를 들어:

Live Demo
#!/usr/bin/python
tup1 = ('physics', 'chemistry', 1997, 2000);
tup2 = (1, 2, 3, 4, 5, 6, 7);
print "tup1[0]: ", tup1[0];
print "tup2[1:5]: ", tup2[1:5];

위 코드를 실행하면 다음 결과가 생성됩니다.

tup1[0]: physics
tup2[1:5]: [2, 3, 4, 5]

튜플 업데이트

튜플은 불변(immutable)이므로 튜플 요소의 값을 업데이트하거나 변경할 수 없습니다. 기존 튜플의 일부분을 가져와 새 튜플을 생성할 수 있습니다. 다음 예제가 이를 보여줍니다.

Live Demo
#!/usr/bin/python
tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');
# 다음 행동은 튜플에서 유효하지 않음
# tup1[0] = 100;
# 따라서 다음과 같이 새 튜플 생성
tup3 = tup1 + tup2;
print tup3;

위 코드를 실행하면 다음 결과가 생성됩니다.

(12, 34.56, 'abc', 'xyz')

튜플 요소 삭제

개별 튜플 요소를 제거하는 것은 불가능합니다. 물론 원하지 않는 요소를 버린 다른 튜플을 만드는 것은 전혀 문제없습니다.

전체 튜플을 명시적으로 제거하려면 del 문을 사용하세요. 예를 들어:

Live Demo
#!/usr/bin/python
tup = ('physics', 'chemistry', 1997, 2000);
print tup;
del tup;
print "After deleting tup : ";
print tup;

다음 결과가 생성됩니다. del tup 후 튜플이 더 이상 존재하지 않으므로 예외가 발생합니다.

('physics', 'chemistry', 1997, 2000)
After deleting tup :
Traceback (most recent call last):
  File "test.py", line 9, in <module>
    print tup;
NameError: name 'tup' is not defined

기본 튜플 연산

튜플은 문자열과 매우 비슷하게 +와 * 연산자에 반응합니다. 여기서는 연결과 반복을 의미하지만, 결과는 문자열이 아닌 새 튜플입니다.

사실 튜플은 이전 장에서 문자열에 사용했던 모든 일반 시퀀스 연산에 반응합니다.

파이썬 표현식결과설명
len((1, 2, 3))3길이
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)연결
('Hi!',) * 4('Hi!', 'Hi!', 'Hi!', 'Hi!')반복
3 in (1, 2, 3)True멤버십
for x in (1, 2, 3): print x,1 2 3반복

인덱싱, 슬라이싱, 매트릭스

튜플은 시퀀스이므로 인덱싱과 슬라이싱이 문자열과 같은 방식으로 작동합니다. 다음 입력을 가정합니다.

L = ('spam', 'Spam', 'SPAM!')
파이썬 표현식결과설명
L[2]'SPAM!'오프셋은 0부터 시작
L[-2]'Spam'음수: 오른쪽부터 카운트
L[1:]['Spam', 'SPAM!']슬라이싱으로 구간 가져오기

구분 기호 없음

식별 기호 없이(리스트는 대괄호, 튜플은 괄호 등) 쉼표로 구분된 여러 객체 세트는 기본적으로 튜플로 간주됩니다. 다음 짧은 예제들이 이를 보여줍니다.

Live Demo
#!/usr/bin/python
print 'abc', -4.24e93, 18+6.6j, 'xyz';
x, y = 1, 2;
print "Value of x , y : ", x, y;

위 코드를 실행하면 다음 결과가 생성됩니다.

abc -4.24e+93 (18+6.6j) xyz
Value of x , y : 1 2

내장 튜플 함수

파이썬에는 다음 튜플 함수가 포함되어 있습니다.

번호함수 및 설명
1cmp(tuple1, tuple2)

두 튜플의 요소 비교.

2len(tuple)

튜플 전체 길이 반환.

3max(tuple)

최댓값을 가진 튜플 항목 반환.

4min(tuple)

최솟값을 가진 튜플 항목 반환.

5tuple(seq)

리스트를 튜플로 변환.

python

  1. 파이썬 데이터 타입 마스터하기: 실전 가이드
  2. 파이썬 연산자 마스터하기: 종합 가이드
  3. 파이썬 pass 문 마스터하기: 실전 가이드
  4. 파이썬 함수 인자 마스터하기: 위치, 키워드, 기본 매개변수
  5. Python 딕셔너리 마스터하기: 생성, 조작, 고급 기법
  6. Python 이터레이터: 작동 원리와 직접 만들기
  7. Python 클로저 이해하기: 중첩 함수가 변수 캡처하는 방법
  8. Python datetime 마스터하기: 날짜, 시간, 타임존 실전 가이드
  9. Python time.sleep() 완전 정복: 모범 사례, 멀티스레딩, 실전 예제
  10. Python 튜플 마스터하기: 패킹, 언패킹, 비교, 슬라이싱, 딕셔너리 키