首页 > 解决方案 > “ValueError:需要超过 X 值来解包”迭代不完整元组的 Python 方式?

问题描述

我有一个图像列表,我想在 html 中为其生成一行 3。我将图像列表打包成 3 个元组。这仍然提供了预期的输出!但我想让它正确并正确地完成 pythonic 方式。

我相信这是因为我有一个不能被三整除的图像列表,所以当里面没有三个图像的元组时会引发错误。

我将如何抑制此错误,因为它仍然有效。或者我如何编写我的代码清理器以不产生这个错误并且仍然有相同的结果?

不断收到此错误:

Traceback (most recent call last):
  File "images.py", line 40, in <module>
    main()
  File "images.py", line 31, in main
    for i,j,k in images:
ValueError: need more than 2 values to unpack
Traceback (most recent call last):
  File "images.py", line 40, in <module>
    main()
  File "images.py", line 31, in main
    for i,j,k in images:
ValueError: need more than 1 value to unpack

代码:

    images = [images[i:i+3] for i in range(0,len(images), 3)]
    html = title+".html"
    with open(html, "w") as post:
        post.write(title+'\n\n')

        for i,j,k in images:
            post.write('<div class="row">\n')
            post.write('<div class="col-md-4"><img src="'+  i["link"][:-4]+'m'+i["link"][-4:]  +'" alt="ChokeOuT" /></div>\n')
            post.write('<div class="col-md-4"><img src="'+  j["link"][:-4]+'m'+j["link"][-4:]  +'" alt="ChokeOuT" /></div>\n')
            post.write('<div class="col-md-4"><img src="'+  k["link"][:-4]+'m'+k["link"][-4:]  +'" alt="ChokeOuT" /></div>\n')
            post.write('</div>\n')

标签: python

解决方案


您有一个列表列表,其中包含 3 个元素。

尝试:

for image in images:
    for i,j,k in image:
        ...

推荐阅读