English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

파이썬 기본 가이드

파이썬 프로세스 제어

Python 함수

Python 데이터 타입

파이썬 파일 작업

파이썬 객체와 클래스

파이썬 날짜와 시간

파이썬 고급 지식

파이썬 참조 가이드

Python 튜플(Tuple)

Python中的元组类似于Python에서의 튜플은 이와 유사합니다.列表

튜플 생성

모든 요소(요소)를 괄호() 안에 배치하여() 구분자로 구분하여 튜플을 생성합니다. 괄호는 선택사항입니다. 그러나 괄호를 사용하는 것은 좋은 습관입니다.

튜플은 어떤 수의 요소도 가질 수 있으며, 그들은 다른 타입(정수, 부호 실수, 리스트,문자열등).

괄호를 사용하지 않고 튜플을 생성할 수도 있습니다. 이를 튜플 래퍼링이라고 합니다.

튜플을 한 개의 요소로 생성하는 것은 약간 특별합니다.

한 개의 요소를 가진 튜플은 괄호 안에 단 하나의 요소만 포함되어 있어도 충분하지 않습니다. 실제로 튜플이라고 명시하기 위해 컴마를 추가해야 합니다.

my_tuple = ("hello")
print(type(my_tuple))  # <class 'str'>
# 한 개의 요소를 가진 튜플을 생성합니다
my_tuple = ("hello",)  
print(type(my_tuple))  # <class 'tuple'> 
# 괄호는 선택사항입니다
my_tuple = "hello",
print(type(my_tuple))  # <class 'tuple'>

튜플 요소 접근

튜플 요소에 접근할 수 있는 여러 가지 방법이 있습니다.

1.인덱스

따라서, 0부터 시작하는 인덱스의 튜플 요소에 접근할 수 있습니다.

를 가집니다.6요소의 튜플은 0에서5의 인덱스. 튜플 외의 요소에 접근 시도합니다(예를 들어6、7 ...)를 호출하면 IndexError가 발생합니다。

인덱스는 정수여야 합니다;따라서 float나 다른 타입을 사용할 수 없습니다. 사용하면 TypeError가 발생합니다.

동일하게, 내장 인덱싱을 사용하여 내장 튜플에 접근하는 예제를 보여줍니다.

my_tuple = ('p','e','r','m','i','t')
print(my_tuple[0])   # 'p' 
print(my_tuple[5])   # 't'
# IndexError: 리스트 인덱스 범위 초과
# print(my_tuple[6]
# 인덱스는 정수여야 합니다
# TypeError: 리스트 인덱스는 정수여야 합니다. 부호 실수가 아닙니다.
# my_tuple[2.0]
# 내장 튜플
n_tuple = ("mouse", [8, 4, 6], (1, 2, 3))
# 내장 인덱싱
print(n_tuple[0][3])       # 's'
print(n_tuple[1][1])       # 4

2.음수 인덱스

Python은 시퀀스에 대해 음수 인덱스를 허용합니다.

인덱스-1최종 요소를 나타냅니다.-2최종 두 번째 요소를 나타냅니다. 이와 같이 계속 합니다。

my_tuple = ('p','e','r','m','i','t')
# 출력: 't'
print(my_tuple[-1]
# 출력: 'p'
print(my_tuple[-6]

3.切片

我们可以使用切片运算符-冒号“:”访问元组中的一系列项目。

my_tuple = ('p','r','o','g','r','a','m','i','z')
# 第2个-4个元素
# 输出: ('r', 'o', 'g')
print(my_tuple[1:4]
# 从开始到第二个元素
# 输出: ('p', 'r')
print(my_tuple[:-7]
# 第8个元素到结尾
# 输出: ('i', 'z')
print(my_tuple[7:])
# 从开始到结尾的元素
# 输出: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple[:])

通过考虑索引位于元素之间,可以最好地可视化切片,如下所示。因此,如果要访问范围,则需要将元组中的部分切片的索引。

更换元组

与列表不同,元组是不可变的。

这意味着一旦分配了元组的元素就无法更改。但是,如果元素本身是可变的数据类型(如列表),则可以更改其嵌套项目。

我们还可以将元组分配给不同的值(重新分配)。

my_tuple = (4, 2, 3, [6, 5]
# TypeError: 'tuple' 对象不支持项分配
# my_tuple[1] = 9
# 但是,可变要素的项目可以变更
my_tuple[3][0] = 9    # Output: (4, 2, 3, [9, 5]
print(my_tuple)
# 元组可以重新分配
my_tuple = ('p','r','o','g','r','a','m','i','z')
# 输出: ('p', 'r', 'o', 'g', 'r', 'a', 'm', 'i', 'z')
print(my_tuple)

我们可以使用+运算符来合并两个元组。这也称为串联

我们还可以使用运算符*,将元组中的元素重复给定次数。

无论+和*操作会导致新的记录。

# 串联
# 输出: (1, 2, 3, 4, 5, 6)
print((1, 2, 3) + (4, 5, 6))
# 重复
# 输出: ('Repeat', 'Repeat', 'Repeat')
print(("Repeat",) * 3)

删除元组

如上所述,我们不能更改元组中的元素。这也意味着我们无法删除或删除元组中的项目。

但是可以使用关键字del完全删除一个元组。

my_tuple = ('p','r','o','g','r','a','m','i','z')
# 不能删除条目
# TypeError: 'tuple'对象不支持项目删除
# del my_tuple[3]
# 可以删除整个元组
del my_tuple
# NameError: 未定义名称“ my_tuple”
print(my_tuple)

튜플 메서드

튜플은 항목을 추가하거나 제거하는 메서드를 제공하지 않습니다. 다음 두 가지 메서드 만 사용할 수 있습니다.

파이썬 튜플 메서드
methoddescription
count(x)return item countx
index(x)return equalx의 첫 번째 항목의 인덱스

파이썬 튜플 메서드의 몇 가지 예제:

my_tuple = ('a','p','p','l','e',)
print(my_tuple.count('p'))  # 출력: 2
print(my_tuple.index('l'))  # 출력: 3

기타 튜플 연산

1.튜플 구성원资格 테스트

키워드 in을 사용하여 항목이 튜플에 존재하는지 테스트할 수 있습니다.

my_tuple = ('a','p','p','l','e',)
# In 연산
# 출력: True
print('a' in my_tuple)
# 출력: False
print('b' in my_tuple)
# Not in 연산
# 출력: True
print('g' not in my_tuple)

2.튜플 순회

for 루프를 사용하여 튜플의 각 항목을 순회할 수 있습니다.

# 출력: 
# Hello John
# Hello Kate
for name in ('John','Kate'):
     print("Hello", name)

튜플에 비해 리스트의 장점

튜플과 리스트가 매우 유사하기 때문에 비슷한 상황에서도 모두 사용됩니다.

하지만, 리스트에 튜플을 구현하는 것에는 몇 가지 장점이 있습니다. 주요 장점을 다음에 나열합니다:

  • 우리는 일반적으로 튜플을 다양한(다른) 데이터 타입에 사용하고, 리스트를 유사한(동일한) 데이터 타입에 사용합니다.

  • 튜플은 불변하기 때문에 튜플을 순회하는 것은 리스트보다 빠릅니다. 따라서 성능이 약간 향상됩니다.

  • 불변 요소를 포함한 튜플은 딕셔너리의 키로 사용될 수 있습니다. 리스트는 이렇게 할 수 없습니다.

  • 불변한 데이터가 있으면, 그를 튜플로 구현하여 쓰기 보호를 보장할 수 있습니다.