从 Python 中的元组中获取元素

访问特定索引处的元素以从元组中获取元素,例如 first = my_tuple[0]。 索引是从零开始的,因此元组中的第一项的索引为 0,第二项的索引为 1,最后一项的索引为 -1

my_tuple = ('a', 'b', 'c')

first = my_tuple[0]
print(first)  # ?️ 'a'

second = my_tuple[1]
print(second)  # ?️ 'b'

last = my_tuple[-1]
print(last)  # ?️ 'c'

# -----------------

# ?️ 从函数返回的元组访问元素

def example_func():
    return ('a', 'b', 'c')


first = example_func()[0]
print(first)  # ?️ 'a'

我们可以使用方括号从元组中获取元素。

元组中的第一项的索引为 0,最后一项的索引为 -1

如果您需要获取元组的第 N 个元素,请指定元素的索引,例如 要获取元组中的第二项,请使用索引 1

my_tuple = ('a', 'b', 'c')

first = my_tuple[0]
print(first)  # ?️ 'a'

second = my_tuple[1]
print(second)  # ?️ 'b'

可以使用相同的方法从列表中获取元素。

元组与列表非常相似,但实现的内置方法更少,并且是不可变的(无法更改)。

如果我们尝试从函数返回的元组中获取元素,请确保在使用方括号访问索引处的元组之前使用括号调用函数。

def example_func():
    return ('a', 'b', 'c')


first = example_func()[0]
print(first)  # ?️ 'a'

如果我们在超出范围的索引处访问元组,则会收到 IndexError

如果需要处理错误,可以使用 try/except 语句。

my_tuple = ('a', 'b', 'c')

try:
    print(my_tuple[100])
except IndexError:
    # ?️ this runs
    print('Index 100 is not present in the tuple')

该示例捕获在元组索引超出范围时引发的 IndexError

我们也可以直接将元组中的项目解包到变量中。

a, b, c = ('one', 'two', 'three')

print(a)  # ?️ one
print(b)  # ?️ two
print(c)  # ?️ three

从元组解包时,每个变量声明都计入单个项目。

确保声明与元组中的元素一样多的变量。

a, b, c, d = ('one', 'two', 'three', 'four')

print(a)  # ?️ one
print(b)  # ?️ two
print(c)  # ?️ three
print(d)  # ?️ four

如果我们尝试解压缩比元组中更多或更少的值,则会收到错误消息。

# ⛔️ ValueError: too many values to unpack (expected 2)
a, b = ('one', 'two', 'three')

从 Python 中的元组中获取元素

我们声明了 2 个变量,但元组包含 3 个元素。 元组中变量和项的数量不一致会导致 ValueError

如果我们不需要存储某个值,请使用下划线作为变量名。

a, _, c = ('one', 'two', 'three')

print(a)  # ?️ one
print(c)  # ?️ three

当我们使用下划线作为变量名称时,我们向其他开发人员表明该变量只是一个占位符。

解压缩值时,我们可以根据需要使用尽可能多的下划线。

a, _, _, d = ('one', 'two', 'three', 'four')

print(a)  # ?️ one
print(d)  # ?️ four

这是必需的,因为一个逗号接一个逗号是无效的语法。

# ⛔️ SyntaxError: invalid syntax
a, , , d = ('one', 'two', 'three', 'four')

从 Python 中的元组中获取元素