解压 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
如果我有一个元组如下:
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