【发布时间】:2020-01-18 13:13:58
【问题描述】:
我在使用 for 循环处理列表列表时遇到问题,该循环将列表元素分配给变量,而不是使用列表索引。
以下代码正确处理列表,并确认每个子列表有 5 个元素,所有元素均为字符串类型且均包含数据:
for i, rec in enumerate(Wordpress_Post_List):
if i < 5:
if i == 0:
print(type(rec), ' --> ', len(rec))
print('record ',i)
print('0==', type(rec[0]), '==', rec[0])
print('1==', type(rec[1]), '==', rec[1])
print('2==', type(rec[2]), '==', rec[2])
print('3==', type(rec[3]), '==', rec[3])
print('4==', type(rec[4]), '==', rec[4])
但是当我使用以下代码时:
for i, rec in enumerate(Wordpress_Post_List):
if i < 5:
for li0,li1,li2,li3,li4 in rec:
print('0==', type(li0), '==', li0)
print('1==', type(li1), '==', li1)
print('2==', type(li2), '==', li2)
print('3==', type(li3), '==', li3)
print('4==', type(li4), '==', li4)
我收到错误:ValueError: not enough values to unpack (expected 5, got 2)
任何关于 Python 为何这样做的见解将不胜感激。
PS。下面的代码也可以。
for i, rec in enumerate(Wordpress_Post_List):
if i < 5:
li0=rec[0]
li1=rec[1]
li2=rec[2]
li3=rec[3]
li4=rec[4]
print('0==', type(li0), '==', li0)
print('1==', type(li1), '==', li1)
print('2==', type(li2), '==', li2)
print('3==', type(li3), '==', li3)
print('4==', type(li4), '==', li4)
【问题讨论】:
-
请在您的问题中包含在
Wordpress_Post_List中找到的值类型的示例以及预期输出。 -
在这种特定情况下,我们可以对出了什么问题做出有根据的猜测,但是有一个很好的例子来说明嵌套结构会让我们变得很多,much 更有效。而不仅仅是显示异常,通常还需要完整的回溯,因此我们不仅可以查看引发了什么异常,还可以查看 Python 是如何到达那里的,以及问题发生在哪一行确切。
标签: python python-3.x list valueerror