从 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')
我们声明了 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')
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布,任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站。本站所有源码与软件均为原作者提供,仅供学习和研究使用。如您对本站的相关版权有任何异议,或者认为侵犯了您的合法权益,请及时通知我们处理。