如何在数组索引中使用and运算符?

2021-09-27 06:28:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现一个代码使用A[i][j] += min(A[i - 1][j and j - 1:j + 2]) 我尝试了类似的实现,如下所示,这让我意想不到结果。可以吗有人给我解释吗?我无法理解在这种情况下“和”是如何解释的。你知道吗

a = [1,2,3,4,5,6,7,8,9,10,11,12]

print(a[0 and 3:4]) #[1, 2, 3, 4]

print(a[1 and 3:4]) #[4]

print(a[1 and 3:6]) #[4, 5, 6] 

print(a[0 and 3:6]) #[1, 2, 3, 4, 5, 6]

print(a[2 and 3:6]) #[4, 5, 6]

编辑:在[0和3:4]中,它包含从0到3的元素,但是如果我使用[1和3:4],它只给出第三个元素,而我期望元素从1到3

2条回答
网友
1楼 ·

在您的例子中,您只是通过“and”来比较整数值,而不是索引值后面的值。如果你把任何东西和0比较,你得到0。在所有其他情况下,都会得到第二个整数的值(可能不是每个python解释器都有)。你知道吗

网友
2楼 ·

AND的优先级高于切片:运算符。你知道吗

你的表达方式是

a[0 and 3:4]  > a[(0 and 3):4]  > a[0:4]  > [1, 2, 3, 4]

相关问题