' ValueError:需要多于1个值来解包'什么时候创建网格?

时间:2015-10-15 11:18:54

标签: python printing grid

我一直在努力用16个单词制作一个更难的网格。我用9个单词做了一个网格,但是我不能做16个单词。我继续得到' ValueError:需要多于1个值来解包'在我的代码中?

#(Hard) This is the part of the program which puts the words in a Grid.
with open('WordsExt.txt') as f:
    wordshard = random.sample([x.rstrip() for x in f],16)
    gridhard = [wordshard[i:i + 3] for i in range(0, len(wordshard), 3)]
    for x,y,z  in gridhard:
        print (x,y,z)

2 个答案:

答案 0 :(得分:1)

显然,发生错误是因为gridhard包含少于3个元素。

代码示例第三行中迭代器i的最后一个值是15,但wordshard不超过16.在这种情况下,gridhard只包含1个字母因此,不能将其解包为三个值。

答案 1 :(得分:0)

您正在进行4x4网格,因此var Scramble = document.getElementById('Scramble'); Scramble.innerHtml = 'new content'; 需要成为3

此外,您可以使用4方法构建单词网格的每一行,这使输出格式更灵活:

.join

<强>输出

wordshard = [c*4 for c in 'ABCDEFGHIJKLMNOP']
gridhard = [wordshard[i:i + 4] for i in range(0, len(wordshard), 4)]
for row in gridhard:
    print(' '.join(row))

如果我们将最后一行更改为AAAA BBBB CCCC DDDD EEEE FFFF GGGG HHHH IIII JJJJ KKKK LLLL MMMM NNNN OOOO PPPP ,则输出变为:

print(' | '.join(row))

或者,我们可以使用AAAA | BBBB | CCCC | DDDD EEEE | FFFF | GGGG | HHHH IIII | JJJJ | KKKK | LLLL MMMM | NNNN | OOOO | PPPP “splat”解包运算符并在*调用中指定分隔符字符串来获得相同的输出:

print