这个问题在python中:
battleships = [['0','p','0','s'],
['0','p','0','s'],
['p','p','0','s'],
['0','0','0','0']]
def fun(a,b,bships):
c = len(bships)
return bships[c-b][a-1]
print(fun(1,1,battleships))
print(fun(1,2,battleships))
第一次打印结果为0 第二次打印得到p
我不明白为什么,如果你能解释一下,我将不胜感激。在
感谢帮助的人:)
索引从
0
开始。所以战舰包含索引0
,1
,2
,3
的物品。在首先
len(bships)
获取列表列表battleships
的长度,即4。在bships[c-b][a-1]
通过索引值访问列表中的项。第一次调用函数时:它是},它是{}
bships[4-1][1-1]
,它是bships[3][0]
,它是{将计算替换为实际值,可以轻松地计算出:
在第一个调用中,您正在索引:
从0开始计算,这是最后一行,
['0','0','0','0']
,第一个元素,'0'
。在第二个调用的计算结果为:
^{pr2}$所以最后第二行的第一个单元格
['p','p','0','s']
是'p'
。在请注意,在Python中,您可以使用负索引,而不必先计算},其工作原理将完全相同:
len()
;从函数中删除{这是因为Python将负索引视为从末尾开始计数;在内部,它将使用序列的长度(与序列一起存储)来计算相同的内容,但速度更快。在
现在
battleships[c-b][a-1]
可以分成两部分:battleships[c-b]
和{Python首先调用},所以它返回战列舰的最后一个列表(第4项)。i、 e
battleships[c-b]
,因为c-b
是{['0','0','0','0']
(索引从0
开始)接下来是第二部分:
[a-1]
现在对返回的列表调用
[a-1]
,即['0','0','0','0']
['0','0','0','0'][a-1]
,因为a-1
是{所以你得到了“0”。在
这同样适用于
^{pr2}$a
,b
的不同值:相关问题 更多 >
编程相关推荐