파이썬 노트 (7): 튜플의 정의와 사용

작은 지식, 큰 도전! 이 기사는 "프로그래머를 위한 필수 지식"창의적 활동.

안녕하세요 여러분 저는한 그릇 주, 술에 취하고 싶지 않은 프론트 엔드 (복잡함). 쓰신 글이 운이 좋게도 은혜를 입는다면 저야말로 큰 행운입니다~

앞에 쓰다

Python에서 튜플은 목록의 요소를 수정할 수 있는 반면 튜플의 요소는 수정할 수 없다는 점을 제외하면 목록과 매우 유사한 데이터 유형입니다 .

튜플 정의 및 사용

정의

요소 정의는 일반적으로 괄호 ()리터럴 구문을 사용하며 예제 코드는 다음과 같습니다.

tuple1 = ("Hello", "一碗周", "你好")

print(type(tuple1))  # 查看元组类型  <class 'tuple'>
print(tuple1)  # ('Hello', '一碗周', '你好')
复制代码

사용

튜플에서 지원하는 연산자 및 사용 방법은 목록과 동일하며 샘플 코드는 다음과 같습니다.

tuple1 = ("Hello", "一碗周", "掘金", "开发者", "strive")
tuple2 = (10, 20, 60, 34)

# 拼接
tuple3 = tuple1 + tuple2
print(tuple3)  # ('Hello', '一碗周', '掘金', '开发者', 'strive', 10, 20, 60, 34)
print(tuple2 * 2)  # (10, 20, 60, 34, 10, 20, 60, 34)

# 索引和切片
print(tuple1[1], tuple1[-4])  # 一碗周 一碗周
print(tuple3[:2])  # ('Hello', '一碗周')
print(tuple3[::2])  # ('Hello', '掘金', 'strive', 20, 34)

# 遍历操作
for ch in tuple1:
    print(ch)
'''
Hello
一碗周
掘金
开发者
strive
'''

# 成员运算
print("一碗周" in tuple1)  # True
print("掘金" not in tuple1)  # False
复制代码

비어 ()있다는 것은 빈 튜플을 의미한다. 튜플에는 2개의 요소가 있는데 이를 2-튜플(two-tuple)이라고 한다. 5개가 있으면 5-튜플이라고 하지만 내부에 있으면 ('hello')튜플이 아니며, 괄호가 변경됩니다. 우선순위 괄호, 괄호로 만들려면 쉼표를 추가해야 하며 ,그렇지 않으면 튜플을 나타내지 않습니다. 샘플 코드는 다음과 같습니다.

a = ()
print(type(a))    # <class 'tuple'>
b = ('一碗周')
print(type(b))    # <class 'str'>
c = (100)
print(type(c))    # <class 'int'>
d = ('一碗周', )
print(type(d))    # <class 'tuple'>
e = (100, )
print(type(e))    # <class 'tuple'>
复制代码

튜플 애플리케이션 시나리오

포장 및 포장 풀기

변수에 여러 개의 쉼표로 구분된 값을 할당할 때 여러 값은 튜플 유형으로 압축되고, 튜플을 여러 변수에 할당할 때 튜플은 여러 값으로 압축을 풀고 해당 값에 할당됩니다. 변수에 대한 샘플 코드는 다음과 같습니다.

t = "Hello", "一碗周", "掘金", "开发者", "strive"
print(type(t))  # <class 'tuple'>
print(t)  # ('Hello', '一碗周', '掘金', '开发者', 'strive')

x, y, z, i, j = t
print(x, y, z, i, j)  # Hello 一碗周 掘金 开发者 strive
复制代码

언패킹 시 요소의 개수와 변수의 개수가 일치하지 않으면 다음 코드와 같은 오류가 발생합니다.

t= ("Hello", "一碗周", "掘金", "开发者", "strive")

# x, y, z = t # ValueError: too many values to unpack

x, y, z, i, j, k, l = t # ValueError: not enough values to unpack
复制代码

ValueError: too many values to unpack압축을 풀기에 값이 충분하지 않습니다.

ValueError: not enough values to unpack압축 해제된 값이 너무 많습니다.

변수의 개수가 튜플의 개수보다 적다는 오류를 해결하는 방법은 와일드카드를 사용하는 *것인데, 이 와일드카드를 사용하면 변수는 여러 값을 받을 수 있고, 하나의 변수는 리스트로 바뀌는데, 이 와일드카드는 한 번만 나타날 수 있다. 다음과 같은 예제 코드:

t = ("Hello", "一碗周", "掘金", "开发者", "strive")

x, y, *z = t
print(x, y, z)  # Hello 一碗周 ['掘金', '开发者', 'strive']

x, *y, z = t
print(x, y, z)  # Hello ['一碗周', '掘金', '开发者'] strive

*x, y, z = t
print(x, y, z)  # ['Hello', '一碗周', '掘金'] 开发者 strive
复制代码

두 변수의 값을 교환

Python에서 두 변수의 값을 교환 하고 다음 ab같은 코드를 사용하려면

a, b = b, a
复制代码

a마찬가지로 세 변수 , b, , 즉 assign , assign , assign c의 값을 교환하고 싶다면 똑같이 하면 됩니다.bacbac

a, b, c = b, c, a
复制代码

함수가 여러 값을 반환하도록 만들기

return명령문에 두 개의 값이 있는 경우 두 개의 값을 2-tuple로 조합하여 반환합니다 . 따라서 정의된 함수를 호출하면 이 2개의 튜플을 얻게 되며, 압축 해제 구문을 통해 2개의 튜플에 있는 두 값을 두 개의 변수에 할당할 수도 있습니다.

추천

출처juejin.im/post/7022990623774867492