python
이 기사에서는 Python 튜플에 대한 모든 것을 배울 것입니다. 구체적으로 튜플이 무엇인지, 어떻게 생성하는지, 언제 사용하는지, 다양한 방법을 숙지하고 있어야 하는지 알려주세요.
파이썬의 튜플은 목록과 비슷합니다. 둘의 차이점은 한 번 할당된 튜플의 요소는 변경할 수 없지만 목록의 요소는 변경할 수 있다는 것입니다.
<시간>
튜플은 모든 항목(요소)을 괄호 ()
안에 배치하여 생성됩니다. , 쉼표로 구분. 괄호는 선택 사항이지만 괄호를 사용하는 것이 좋습니다.
튜플은 여러 항목을 가질 수 있으며 다양한 유형(정수, 부동 소수점, 목록, 문자열 등)일 수 있습니다.
# Different types of tuples
# Empty tuple
my_tuple = ()
print(my_tuple)
# Tuple having integers
my_tuple = (1, 2, 3)
print(my_tuple)
# tuple with mixed datatypes
my_tuple = (1, "Hello", 3.4)
print(my_tuple)
# nested tuple
my_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
print(my_tuple)
출력
() (1, 2, 3) (1, 'Hello', 3.4) ('mouse', [8, 4, 6], (1, 2, 3))
괄호를 사용하지 않고 튜플을 만들 수도 있습니다. 이것을 튜플 패킹이라고 합니다.
my_tuple = 3, 4.6, "dog"
print(my_tuple)
# tuple unpacking is also possible
a, b, c = my_tuple
print(a) # 3
print(b) # 4.6
print(c) # dog
출력
(3, 4.6, 'dog') 3 4.6 dog
하나의 요소로 튜플을 만드는 것은 약간 까다롭습니다.
괄호 안에 하나의 요소를 갖는 것만으로는 충분하지 않습니다. 실제로 튜플임을 나타내려면 후행 쉼표가 필요합니다.
my_tuple = ("hello")
print(type(my_tuple)) # <class 'str'>
# Creating a tuple having one element
my_tuple = ("hello",)
print(type(my_tuple)) # <class 'tuple'>
# Parentheses is optional
my_tuple = "hello",
print(type(my_tuple)) # <class 'tuple'>
출력
<class 'str'> <class 'tuple'> <class 'tuple'><시간>
튜플의 요소에 액세스할 수 있는 다양한 방법이 있습니다.
인덱스 연산자 []
을 사용할 수 있습니다. 인덱스가 0부터 시작하는 튜플의 항목에 액세스합니다.
따라서 6개의 요소가 있는 튜플은 0에서 5까지의 인덱스를 갖습니다. 튜플 인덱스 범위(이 예에서는 6,7,...) 외부의 인덱스에 액세스하려고 하면 IndexError
가 발생합니다. .
인덱스는 정수여야 하므로 float 또는 다른 유형을 사용할 수 없습니다. 그러면 TypeError
이 됩니다. .
마찬가지로 중첩 튜플은 아래 예와 같이 중첩 인덱싱을 사용하여 액세스합니다.
# Accessing tuple elements using indexing
my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0]) # 'p'
print(my_tuple[5]) # 't'
# IndexError: list index out of range
# print(my_tuple[6])
# Index must be an integer
# TypeError: list indices must be integers, not float
# my_tuple[2.0]
# nested tuple
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
# nested index
print(n_tuple[0][3]) # 's'
print(n_tuple[1][1]) # 4
출력
p t s 4<시간>
Python은 시퀀스에 대해 음수 인덱싱을 허용합니다.
-1의 인덱스는 마지막 항목을 나타내고 -2는 두 번째 마지막 항목을 나타내는 식입니다.
# Negative indexing for accessing tuple elements
my_tuple = ('p', 'e', 'r', 'm', 'i', 't')
# Output: 't'
print(my_tuple[-1])
# Output: 'p'
print(my_tuple[-6])
출력
t p<시간>
슬라이싱 연산자 콜론 :
을 사용하여 튜플의 항목 범위에 액세스할 수 있습니다. .
# Accessing tuple elements using slicing
my_tuple = ('p','r','o','g','r','a','m','i','z')
# elements 2nd to 4th
# Output: ('r', 'o', 'g')
print(my_tuple[1:4])
# elements beginning to 2nd
# Output: ('p', 'r')
print(my_tuple[:-7])
# elements 8th to end
# Output: ('i', 'z')
print(my_tuple[7:])
# elements beginning to end
# Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple[:])
출력
('r', 'o', 'g') ('p', 'r') ('i', 'z') ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
슬라이싱은 아래와 같이 요소 사이에 인덱스를 고려하여 가장 잘 시각화할 수 있습니다. 따라서 범위에 액세스하려면 튜플에서 해당 부분을 슬라이스할 인덱스가 필요합니다.
<그림>목록과 달리 튜플은 변경할 수 없습니다.
이것은 튜플의 요소가 일단 할당되면 변경할 수 없음을 의미합니다. 그러나 요소 자체가 목록과 같이 변경 가능한 데이터 유형인 경우 중첩된 항목이 변경될 수 있습니다.
튜플을 다른 값에 할당할 수도 있습니다(재할당).
# Changing tuple values
my_tuple = (4, 2, 3, [6, 5])
# TypeError: 'tuple' object does not support item assignment
# my_tuple[1] = 9
# However, item of mutable element can be changed
my_tuple[3][0] = 9 # Output: (4, 2, 3, [9, 5])
print(my_tuple)
# Tuples can be reassigned
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# Output: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)
출력
(4, 2, 3, [9, 5]) ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
+
을 사용할 수 있습니다. 두 개의 튜플을 결합하는 연산자. 이것을 연결이라고 합니다. .
반복할 수도 있습니다. *
을 사용하여 주어진 횟수만큼 튜플의 요소 연산자.
+
둘 다 및 *
작업 결과 새 튜플이 생성됩니다.
# Concatenation
# Output: (1, 2, 3, 4, 5, 6)
print((1, 2, 3) + (4, 5, 6))
# Repeat
# Output: ('Repeat', 'Repeat', 'Repeat')
print(("Repeat",) * 3)
출력
(1, 2, 3, 4, 5, 6) ('Repeat', 'Repeat', 'Repeat')<시간>
위에서 논의한 것처럼 튜플의 요소를 변경할 수 없습니다. 이는 튜플에서 항목을 삭제하거나 제거할 수 없음을 의미합니다.
그러나 del 키워드를 사용하여 튜플을 완전히 삭제할 수 있습니다.
# Deleting tuples
my_tuple = ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
# can't delete items
# TypeError: 'tuple' object doesn't support item deletion
# del my_tuple[3]
# Can delete an entire tuple
del my_tuple
# NameError: name 'my_tuple' is not defined
print(my_tuple)
출력
Traceback (most recent call last): File "<string>", line 12, in <module> NameError: name 'my_tuple' is not defined<시간>
항목을 추가하거나 항목을 제거하는 메소드는 튜플에서 사용할 수 없습니다. 다음 두 가지 방법만 사용할 수 있습니다.
Python 튜플 메서드의 몇 가지 예:
my_tuple = ('a', 'p', 'p', 'l', 'e',)
print(my_tuple.count('p')) # Output: 2
print(my_tuple.index('l')) # Output: 3
출력
2 3<시간>
in
키워드를 사용하여 항목이 튜플에 있는지 여부를 테스트할 수 있습니다. .
# Membership test in tuple
my_tuple = ('a', 'p', 'p', 'l', 'e',)
# In operation
print('a' in my_tuple)
print('b' in my_tuple)
# Not in operation
print('g' not in my_tuple)
출력
True False True<시간>
for
을 사용할 수 있습니다. 루프를 사용하여 튜플의 각 항목을 반복합니다.
# Using a for loop to iterate through a tuple
for name in ('John', 'Kate'):
print("Hello", name)
출력
Hello John Hello Kate<시간>
튜플은 목록과 매우 유사하기 때문에 둘 다 비슷한 상황에서 사용됩니다. 그러나 목록에 대해 튜플을 구현하면 특정 이점이 있습니다. 다음은 주요 이점 중 일부입니다.
python
파이썬 strptime() 이 기사에서는 문자열에서 datetime 객체를 만드는 방법을 배웁니다(예제를 통해). 동영상:Python의 날짜 및 시간 strptime() 메소드는 주어진 문자열에서 datetime 객체를 생성합니다. 참고: datetime을(를) 만들 수 없습니다. 모든 문자열의 개체. 문자열은 특정 형식이어야 합니다. 예시 1:문자열을 datetime 개체로 from datetime import datetime date_string = 21 June, 2018 print(date_string =,
놓치신 경우:Python 2는 2020년 1월 1일부로 공식적으로 지원되지 않음 . 아직 Python 2.7을 사용 중이라면 지금 업그레이드하세요. . 실행 중인 버전이 확실하지 않은 경우 Python 버전을 확인하세요. 많은 패키지 유지 관리자가 Python 3으로 마이그레이션했습니다. 일부는 여전히 Python 2를 지원하고 다른 일부는 이미 Python 2 지원을 중단했습니다. Python 2 코드 기반에서 마이그레이션해야 하는 경우 Python 코드를 Python 3으로 마이그레이션하는 방법에 대한 가이드를 읽어보세요.