Python 我们如何使用';和';数组索引中的运算符?

Python 我们如何使用';和';数组索引中的运算符?,python,arrays,python-3.x,indexing,iteration,Python,Arrays,Python 3.x,Indexing,Iteration,我发现一个代码使用了A[I][j]+=min(A[I-1][j和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

我发现一个代码使用了
A[I][j]+=min(A[I-1][j和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

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

的优先级高于slice
运算符

你的表达就像

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

你所说的意外结果是什么意思?编辑。请检查
0和3
是否为
0
,因为
0
是错误的<代码>1和3是
3
,因为
1
是真实的。请参阅dupe target。有趣的事实:如果您不知道:True也是一个整数,即1。但是要小心,是的,我现在知道了。但是,如果两个非零整数之间存在“and”,该怎么办?非零整数是非假值,因此在两个非零值之间,将使用第二个<代码>-1和-5-->
-5
哦,谢谢。清除所有混淆。@KaranShah现在你知道它是如何工作的,不要像这样使用它;-)呵呵,但这很有趣XD@jarmod