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 | 되풀이 |