Python 解压元组项

Python 解压元组项

术语”解压”指的是将元组中的项解析为单独的变量的过程。在Python中,括号是序列对象的字面表示的默认分隔符。

以下语句用于声明一个元组,它们是相同的。

>>> t1 = (x,y)
>>> t1 = x,y
>>> type (t1)
<class 'tuple'>

示例 1

要将元组项存储在单独的变量中,请在赋值运算符左侧使用多个变量,如下例所示-

tup1 = (10,20,30)
x, y, z = tup1
print ("x: ", x, "y: ", "z: ",z)

将会产生以下 输出

x: 10 y: 20 z: 30

这就是将元组解包为独立变量的方式。

使用来解包元组

在上面的示例中,赋值操作符左侧的变量数量等于元组中的项数。如果数量不等于项数会怎样呢?

示例2

如果变量的数量多于或少于元组长度,Python将引发ValueError错误。

tup1 = (10,20,30)
x, y = tup1
x, y, p, q = tup1

它将产生以下的 输出 -

x, y = tup1
  ^^^^
ValueError: too many values to unpack (expected 2)
  x, y, p, q = tup1
  ^^^^^^^^^^
ValueError: not enough values to unpack (expected 4, got 3)

在这种情况下,使用 “” 符号来进行解包。将 “” 添加到 “y” 前面,如下所示 –

tup1 = (10,20,30)
x, *y = tup1
print ("x: ", "y: ", y)

它将产生以下 输出

x: y: [20, 30]

元组中的第一个值分配给”x”,其他的值分配给”y”,它变成一个列表。

示例3

在这个例子中,元组包含6个值,要解包的变量有3个。我们在第二个变量前加上”*”。

tup1 = (10,20,30, 40, 50, 60)
x, *y, z = tup1
print ("x: ",x, "y: ", y, "z: ", z)

它将产生以下 输出 。−

x: 10 y: [20, 30, 40, 50] z: 60

在这里,首先将值解包到”x”和”z”中,然后将剩余的值作为列表赋给”y”。

示例4

如果我们在第一个变量前添加”*”会怎样?

tup1 = (10,20,30, 40, 50, 60)
*x, y, z = tup1
print ("x: ",x, "y: ", y, "z: ", z)

它将产生以下 输出

x: [10, 20, 30, 40] y: 50 z: 60

在这里,元组被解包,以便个别变量首先获得值,剩余的值留给列表”x”。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程