我一直在努力用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)
答案 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