Python 元组解包:解包元组的 2 种快速方法

本文将按照我们的代码片段中的某些示例来阐明解包元组的不同方法。让我们开始吧,不要浪费时间。

在开始之前,首先让我们了解一下Python中的Tuple是什么

元组是 Python 中四种流行的内置集合之一,其中包括 List、Set 和 Dictionary。它用于存储有序的、索引的数据集合,与数据类型无关。

与数组类似,元组中的第一个值将具有索引 [0],第二个值将具有索引 [1],依此类推。可以通过以下命令创建元组。

new_tuple = ("New Delhi", "Tiger", 5000, "5.285", "Rahul", True)

我们的 new_tuple 将按如下方式创建。

print(new_tuple)
 ('New Delhi', 'Tiger', 5000, '5.285', 'Rahul', True)
样本元组

Python 中元组的一些关键特性如下。

  • 它本质上是不变的。一旦创建了元组,就无法修改其元素也无法删除。
  • 从元组中删除元素是不可能的。但删除一个元组是。
  • 元组可以存储重复的值
  • 我们可以创建一个空的元组。
  • 我们可以用单个元素创建一个元组。
  • 两个或多个元组之间可以进行串联。
  • 元组不支持调整大小方法:  等等。append(), remove()pop()

如您所知,元组本质上是不可变的。它的值或内容一旦创建就无法更改。但我们可以做的一件事是,我们可以解压元组的内容。解包元组意味着将元组的内容拆分为单独的变量。我们将在这里学习三种执行相同操作的方法,然后是一些示例。我们也来了解一下他们吧。

通过重新分配来解压 Python 元组

#Let's create a tuple
new_tuple = ("New Delhi", "Tiger", 5000, "5.285", "Rahul", True)
 
#We can unpack the tuple by assigning each content of the tuple to individual variables
(a, b, c, d, e, f) = new_tuple

在上面的示例中,我们将元组的每个内容分配给各个变量。让我们按照代码片段查看每个变量的内容。

#printing each variable
print(a)
'New Delhi'
print(b)
'Tiger'
print(c)
5000
print(d)
'5.285'
print(e)
Rahul
print(f)
True

在使用这种方法时,我们必须记住,我们需要采取no。变量的数量与编号相同。元组内的内容。否则会抛出如下错误。

(a, b, c, d) = new_tuple
Traceback (most recent call last):
  File "<pyshell#3>", line 1, in <module>
    (a, b, c, d) = new_tuple
ValueError: too many values to unpack (expected 4)
错误(需要解压两个多个值)

使用星号 * 符号解包元组

在此示例中,我们将使用星号运算(*)符。如果变量的数量小于元组中内容的数量,我们可以 * 在变量名称中添加 a ,并且值将以列表的形式分配给变量。让我们尝试一下以下代码片段。

#taking the same tuple created in method 1
print(new_tuple)
 ('New Delhi', 'Tiger', 5000, '5.285', 'Rahul', True)
 
#no. of variables (=3) is less than no. of contents (=6).
#adding * to y
(x, *y, z) = new_tuple

现在,我们可以通过单独打印变量来查看结果。

print(x)
New Delhi
print(y)
['Tiger', 5000, '5.285', 'Rahul']
print(z)
True

我们可以看到中间的四个内容创建了一个列表并分配给 y。这样,这个方法就起作用了。通过遵循代码片段中的以下示例,我们可以更好地理解。

#Example 1
(x, y, *z) = new_tuple
print(x)
'New Delhi'
print(y)
'Tiger'
print(z)
[5000, '5.285', 'Rahul', True]
 
#Example 2
(*x, y, z) = new_tuple
print(x)
['New Delhi', 'Tiger', 5000, '5.285']
print(y)
'Rahul'
print(z)
True
 
#Example 3
(x, y, *z, w) = new_tuple
print(x)
New Delhi
print(z)
[5000, '5.285', 'Rahul']
print(w)
True
print(y)
Tiger

注意:使用此方法时,仅将 * 运算符添加到单个变量。否则,它将抛出如下错误。

(*x, *y, z) = new_tuple
SyntaxError: multiple starred expressions in assignment
多重签名错误

结论

在本文中,我们介绍了如何在 Python 中解包元组。元组在用于像 Python 中的其他元素一样设计的用例时具有优势。希望您一定喜欢它。我们必须带着一些更令人兴奋的话题再次访问。