在 Python 中将元组拆分为多个变量

解包值以将元组拆分为多个变量,例如 r, g, b = (‘red’, ‘green’, ‘blue’)。 解包时,确保声明的变量与可迭代对象中的项目一样多。

r, g, b = ('red', 'green', 'blue')

print(r)  # ?️ 'red'
print(g)  # ?️ 'green'
print(b)  # ?️ 'blue'

从元组中解包时,每个变量声明都算作一个项目。

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

r, g, b, y = ('red', 'green', 'blue', 'yellow')

print(r)  # ?️ 'red'
print(g)  # ?️ 'green'
print(b)  # ?️ 'blue'
print(y)  # ?️ 'yellow'

如果我们尝试解包的值多于或少于元组中的值,则会出现错误。

# ⛔️ ValueError: too many values to unpack (expected 2)
r, g = ('red', 'green', 'blue')

在 Python 中将元组拆分为多个变量

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

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

r, _, b = ('red', 'green', 'blue')


print(r)  # ?️ 'red'
print(b)  # ?️ 'blue'

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

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

r, _, _, y = ('red', 'green', 'blue', 'yellow')


print(r)  # ?️ 'red'
print(y)  # ?️ 'yellow'

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

# ⛔️ SyntaxError: invalid syntax
r, , , y = ('red', 'green', 'blue', 'yellow')