Python-튜플

튜플은 변경 불가능한 Python 객체의 시퀀스입니다. 튜플은 목록과 마찬가지로 시퀀스입니다. 튜플과 목록의 차이점은 튜플은 목록과 달리 변경할 수 없으며 튜플은 괄호를 사용하는 반면 목록은 대괄호를 사용한다는 것입니다.

튜플을 만드는 것은 다른 쉼표로 구분 된 값을 입력하는 것만 큼 간단합니다. 선택적으로 이러한 쉼표로 구분 된 값을 괄호 안에 넣을 수도 있습니다. 예를 들면-

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

빈 튜플은 아무것도 포함하지 않는 두 개의 괄호로 작성됩니다.

tup1 = ();

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

tup1 = (50,);

문자열 인덱스와 마찬가지로 튜플 인덱스는 0에서 시작하며 슬라이스, 연결 등을 할 수 있습니다.

튜플의 값에 액세스

튜플의 값에 액세스하려면 해당 인덱스에서 사용할 수있는 값을 얻기 위해 인덱스와 함께 분할하기 위해 대괄호를 사용합니다. 예를 들면-

#!/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]

튜플 업데이트

튜플은 불변이므로 튜플 요소의 값을 업데이트하거나 변경할 수 없습니다. 다음 예제가 보여주는 것처럼 기존 튜플의 일부를 가져와 새 튜플을 만들 수 있습니다.

#!/usr/bin/python

tup1 = (12, 34.56);
tup2 = ('abc', 'xyz');

# Following action is not valid for tuples
# tup1[0] = 100;

# So let's create a new tuple as follows
tup3 = tup1 + tup2;
print tup3;

위의 코드가 실행되면 다음과 같은 결과가 생성됩니다.

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

튜플 요소 삭제

개별 튜플 요소를 제거 할 수 없습니다. 물론 원치 않는 요소를 버리고 또 다른 튜플을 모으는 것은 잘못된 것이 아닙니다.

전체 튜플을 명시 적으로 제거하려면 del성명서. 예를 들면-

#!/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)) 길이
(1, 2, 3) + (4, 5, 6) (1, 2, 3, 4, 5, 6) 연쇄
( '안녕!',) * 4 ( '안녕!', '안녕!', '안녕!', '안녕!') 되풀이
3 인치 (1, 2, 3) 진실 멤버십
x in (1, 2, 3) : print x, 1 2 3 되풀이