<p>我不知道问题出在哪里,但你可以用不同的方式写,让它更简短,更易读,也许这样就可以解决你的问题</p>
<p>可以使用</p>
<pre><code>text = ", ".join(inventorylist)
</code></pre>
<p>并贴上标签</p>
<pre><code>text = ", ".join(inventorylist)
Label_i.configure(text="In your inventory you have:\n{}".format(text))
</code></pre>
<p>然后你甚至不必使用<code>len(inventorylist)</code>,因为它适用于<code>inventorylist</code>中任意数量的项目</p>
<hr/>
<p><strong>编辑:</strong></p>
<p>要每3项添加<code>\n</code>,可以首先创建包含3项的行</p>
<pre><code>line1 = ", ".join(inventorylist[0:3])
line2 = ", ".join(inventorylist[3:6])
line3 = ", ".join(inventorylist[6:9])
</code></pre>
<p>然后使用<code>"\n"</code>或<code>",\n"</code>连接行</p>
<pre><code>text = ",\n".join([line1, line2, line3])
</code></pre>
<p>如果只有3个项,则<code>[3:9]</code>和<code>[6:9]</code>将创建空列表,然后<code>line2</code>和<code>line3</code>将有空字符串,并将<code>",\n"</code>添加到空行中,但看起来不太好-但是可以使用<code>filter(None, list)</code>从列表中删除空元素</p>
<pre><code>text = ",\n".join(filter(None, [line1, line2, line3]))
</code></pre>
<hr/>
<pre><code>inventorylist = ['a', 'b', 'c', 'd', 'e']
line1 = ", ".join(inventorylist[0:3])
line2 = ", ".join(inventorylist[3:6])
line3 = ", ".join(inventorylist[6:9])
text = ",\n".join(filter(None, [text1, text2, text3]))
print(text)
</code></pre>
<hr/>
<p>如果您希望库存中有更多的项目,那么可以使用<code>for</code>-loop与<code>range(start, stop, step)</code>和<code>step = 3</code></p>
<pre><code>inventorylist = ['a', 'b', 'c', 'd', 'e', 'f']
all_lines = []
for i in range(0, len(inventorylist), 3):
line = ", ".join(inventorylist[i:i+3])
all_lines.append(line)
text = ",\n".join(all_lines)
print(text)
</code></pre>
<p>这个版本不需要<code>filter</code>,因为<code>for</code>-loop不会创建空行</p>