擅长:python、mysql、java
<p>将计算替换为实际值,可以轻松地计算出:</p>
<p>在第一个调用中,您正在索引:</p>
<pre><code>bships[c-b][a-1] == bships[4-1][1-1] == bships[3][0]
</code></pre>
<p>从0开始计算,这是最后一行,<code>['0','0','0','0']</code>,第一个元素,<code>'0'</code>。在</p>
<p>第二个调用的计算结果为:</p>
^{pr2}$
<p>所以最后第二行的第一个单元格<code>['p','p','0','s']</code>是<code>'p'</code>。在</p>
<p>请注意,在Python中,您可以使用负索引,而不必先计算<code>len()</code>;从函数中删除{<cd6>},其工作原理将完全相同:</p>
<pre><code>>>> battleships = [['0','p','0','s'],
... ['0','p','0','s'],
... ['p','p','0','s'],
... ['0','0','0','0']]
>>> def fun(a,b,bships):
... return bships[-b][a-1]
...
>>> print(fun(1,1,battleships))
0
>>> print(fun(1,2,battleships))
p
</code></pre>
<p>这是因为Python将负索引视为从末尾开始计数;在内部,它将使用序列的长度(与序列一起存储)来计算相同的内容,但速度更快。在</p>