Заметки по Python (7): определение и использование кортежей

Python Технологии Nuggets призывают к публикации
Заметки по Python (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

пустой()Представляет собой пустой кортеж. В кортеже два элемента, который называется двухкортежным. Если их пять, он называется пятикортежным, но если он('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 поменяйте местами две переменныеaиbЗначение просто нужно использовать код, как показано ниже

a, b = b, a

Аналогично, если три переменные должны бытьa,b,cобмен ценностями, т.bназначатьa,cназначатьb,aназначатьc, также можно сделать таким же образом.

a, b, c = b, c, a

Заставить функцию возвращать несколько значений

еслиreturnВ операторе есть два значения, которые собираются в 2-кортеж и возвращаются. Таким образом, вызов определенной функции получит эту двойку, и вы также можете присвоить два значения в двойке двум переменным через синтаксис распаковки.