250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- fnmatch
- CSS
- View
- 오버라이딩
- randrange()
- discard()
- zipfile
- locals()
- node.js
- items()
- __len__
- MySQL
- count()
- fileinput
- choice()
- shutil
- mro()
- Database
- 파이썬
- JS
- glob
- __sub__
- MySqlDB
- remove()
- __annotations__
- HTML
- __getitem__
- inplace()
- shuffle()
- decode()
Archives
- Today
- Total
흰둥이는 코드를 짤 때 짖어 (왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!왈!)
(파이썬) 튜플 본문
728x90
반응형
1. 튜플(Tuple)
- 리스트와 비슷하지만 리스트는 대괄호로 자료를 감싸고, 튜플은 소괄호로 감쌈
- 요소의 수정, 삭제 불가능
튜플이 사용되는 이유
- 파이썬은 변수 선언이 아니므로 재사용시 오류를 잡을 수 없음
이런일로 데이터가 바뀌는일이 없어야 되는경우 튜플 사용
In [1]:
tu1 = ()
print(tu1)
tu1[0] = 100 # TypeError: 'tuple' object does not support item assignment
()
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-1-3606c95225fd> in <module>
2 print(tu1)
3
----> 4 tu1[0] = 100 # TypeError: 'tuple' object does not support item assignment
TypeError: 'tuple' object does not support item assignment
- 튜플은 추가, 삭제가 불가능 하므로 요소 추가시 에러가 발생한다.
In [2]:
tu2 = (1, 3, 5, 7)
print(tu2)
(1, 3, 5, 7)
In [3]:
tu3 = 1, 3, 5, 7
print(tu3)
print(type(tu3))
(1, 3, 5, 7)
<class 'tuple'>
- 튜플 선언시 소괄호를 생략 가능하다.
In [4]:
tu4 = ('apple', 'banana', ('🍓', '🍉'))
print(tu4)
tu5 = ('apple', 'banana', ['🍓', '🍉'])
print(tu5)
print(type(tu5))
('apple', 'banana', ('🍓', '🍉'))
('apple', 'banana', ['🍓', '🍉'])
<class 'tuple'>
- 튜플안에 리스트도 선언 가능하다.
2. 튜플의 수정 및 삭제
In [5]:
tu6 = (1, 2, 'apple', 'banana')
print(tu6)
print(tu6[2])
tu6[2] = 'orange' # TypeError: 'tuple' object does not support item assignment
(1, 2, 'apple', 'banana')
apple
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-5-f77854779440> in <module>
4 print(tu6[2])
5
----> 6 tu6[2] = 'orange' # TypeError: 'tuple' object does not support item assignment
TypeError: 'tuple' object does not support item assignment
튜플안에 요소 수정은 불가능하여 수정시 에러가 발생한다.
In [6]:
del tu6[2] # TypeError: 'tuple' object doesn't support item deletion
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-3e1bd61d61d3> in <module>
----> 1 del tu6[2] # TypeError: 'tuple' object doesn't support item deletion
TypeError: 'tuple' object doesn't support item deletion
튜플안에 요소 삭제도 불가능 하여 에러가 발생한다.
In [7]:
del tu6
튜플 전체 삭제는 가능하다.
In [11]:
tu7 = ('apple', 'banana', ['🍓', '🍉'])
tu7[2][1] = '🍌' # 리스트의 요소이므로 변경이 가능
print(tu7)
tu7[2] = '🍔' # TypeError: 'tuple' object does not support item assignment
('apple', 'banana', ['🍓', '🍌'])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-11-d3d6779a2495> in <module>
3 print(tu7)
4
----> 5 tu7[2] = '🍔'
TypeError: 'tuple' object does not support item assignment
튜플 안에 있는 리스트의 요소는 변경 가능하지만 리스트 자체를 다른 요소로 변경은 불가능하다.
In [12]:
tu8 = ('apple', 'banana', ['🍓', '🍉'])
print(tu8)
tu8 = '🍗' # 튜플의 요소가 아닌 데이터의 주소 자체가 바뀌므로 가능
print(tu8)
('apple', 'banana', ['🍓', '🍉'])
🍗
3. 튜플의 인덱싱과 슬라이싱 연산
In [17]:
tu9 = (1, 2, 'apple', 'banana')
# 인덱싱
print(tu9[0])
print(tu9[-1])
# 슬라이싱
print(tu9[1:])
print(tu9[1:3])
# 덧셈(연결)
tu10 = (30, 40)
print(tu9 + tu10)
# 곱셈(반복)
print(tu9 * 3)
# 요소의 갯수
print(len(tu9))
1
banana
(2, 'apple', 'banana')
(2, 'apple')
(1, 2, 'apple', 'banana', 30, 40)
(1, 2, 'apple', 'banana', 1, 2, 'apple', 'banana', 1, 2, 'apple', 'banana')
4
inplace 형식이 아닌 인덱싱이나 슬라이싱은 가능하다.
4. 튜플의 정렬
In [18]:
tu11 = (1, 3, 2, 0)
In [19]:
tu11.sort() # AttributeError: 'tuple' object has no attribute 'sort'
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-19-c2fd58063f85> in <module>
----> 1 tu11.sort()
AttributeError: 'tuple' object has no attribute 'sort'
sort는 요소를 정렬하여 저장하는 수정과정을 거치므로 불가능하다.
In [20]:
tu12 = sorted(tu11)
print(tu12)
[0, 1, 2, 3]
sorted는 요소를 정렬하여 저장하는 것이 아닌 반환해주는 것이므로 가능하다.
728x90
반응형
'파이썬 기초' 카테고리의 다른 글
(파이썬) 반복문 (0) | 2023.03.07 |
---|---|
(파이썬) 조건문 및 연산자 (0) | 2023.03.07 |
(파이썬) 리스트 (0) | 2023.03.06 |
(파이썬) 문자열 함수 (0) | 2023.03.06 |
(파이썬) input(), split(), int() (0) | 2023.03.06 |
Comments