擅长:python、mysql、java
<blockquote>
<p>seatCapacity[seat] displays a number correctly so I'm not certain what I'm doing wrong.</p>
</blockquote>
<p>实际上,不是根据你发布的结果。如果<code>print(seatCapacity[seat])</code>显示<code>[150]</code>是正确的,那么<code>seatCapacity[seat]</code>实际上是一个列表。请注意括号,它使表示列表的<code>[150]</code>和表示整数的<code>150</code>之间有区别。你知道吗</p>
<p>发生这种情况的原因是在循环期间将<code>line</code>设置为列表。你知道吗</p>
<pre><code>line = [int(i) for i in line[10:].split()]
</code></pre>
<p>它所做的就是以文件的当前行为例</p>
<pre><code>"something 10 20 30 40"
</code></pre>
<p>去掉前10个字符</p>
<pre><code>"10 20 30 40"
</code></pre>
<p>将其拆分为单独的空格分隔的片段列表</p>
<pre><code>["10", "20", "30", "40"]
</code></pre>
<p>然后迭代这些片段(<code>i</code>),并将其转换为整数(<code>int(i)</code>),将结果重新组合为一个列表。你知道吗</p>
<pre><code>[10, 20, 30, 40]
</code></pre>
<p>下一行的<code>seatCapacity</code>将附加该列表。你知道吗</p>
<p>如果你想附加一个整数,而不是一个列表,你必须做一些事情,以获得整数你想要的名单。例如,如果您总是想要列表中的第一件事,请使用<code>list[0]</code>;如果您总是想要最后一件事,请使用<code>list[-1]</code>。或者,如果您知道每行上总是有一个数字(不包括前10个字符),您可以直接将该字符串转换为一行,使用<code>int(line[10:].strip())</code>之类的方法。(<code>strip()</code>删除开头和结尾的空白。它可能是可选的,具体取决于文件的内容。)</p>