matrix = [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]
matrix[3][1:] = matrix[3][0:-1]
print(matrix)
给出以下输出:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 13, 14, 15]]
但是:
rows = 3
k = 0
matrix[rows-k][1+k:-k] = matrix[rows-k][k:-1-k]
print(matrix)
给出以下输出:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 13, 14, 15, 14, 15, 16]]
有人可以告诉我发生了什么事吗?
答案 0 :(得分:0)
有趣的问题。
发生这种情况是因为
matrix[rows-k][1+k:-k] = matrix[rows-k][k:-1-k]
等效于
matrix[3][1:0] = matrix[3][0:-1]
等效于
matrix[3][1:1] = matrix[3][0:-1]
因此,当您执行matrix[3][1:0]
=> matrix[index][start:stop:None]
您的起始值为1,大于您的终止值0。在start> = stop的情况下,Python设置stop = start
并返回一个空切片。
您可以检查matrix [3] [1:1]的值,它是一个像矩阵[3] [1:0]一样的空切片
>>> matrix[3][1:0]
[]
>>> matrix[3][1:1]
[]
了解更多:Python doc
如果i大于或等于j,则切片为空
答案 1 :(得分:-2)
如果您插入的行= 3并且k = 0:
const test = () => {
const request = 'hello';
return {
request,
response: [{
originalRequest: request
}]
}
}
console.log(test());
与您的第二行一样不同:
matrix[3][1:0] = matrix[3][0:-1]
已添加。
在第一个示例中,您从 1插入一些数据。位置到底:
matrix[3][1:] = matrix[3][0:-1]
在第二种情况下,您在0和1.位置之间插入一个值。:
a = [1, 2, 3, 4]
a[1:] = [100, 200, 300]
print(a)
OUTPUT: [1, 100, 200, 300]