解压 python 中的元组和 ValueError

Unpack tuples in python and the ValueError

如果我有一个元组如下:

t = ([1, 2, 3], 34, [3, 4, 5, 6], 5643)

当我使用enumerate解包时,出现以下错误:

ValueError: not enough values to unpack (expected 4, got 3)

密码是:

for i, data in enumerate(t):
    a, b, c, d = data

在没有 enumerate 的情况下解压元组:

t = ([1, 2, 3], 34, [3, 4, 5, 6], 5643)
a, b, c, d  = t
print(a)
print(b)
print(c)
print(d)

输出:

[1, 2, 3]
34
[3, 4, 5, 6]
5643

请注意,您收到错误是因为 enumerate 的结果对于 i 的不同值具有不同长度的 data,如下所示(而您期望 data 总是有 4 个元素):

for i, data in enumerate(t):
    print(f'{i}: {data}')
# 0: [1, 2, 3]
# 1: 34
# 2: [3, 4, 5, 6]
# 3: 5643