如何在数组索引中使用“和”运算符?

这个问题已经在这里有了答案:            >            How does the logical `and` operator work with integers in Python?                                     2个
>            Python’s Logical Operator AND                                    6个
我发现了一个使用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]

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

解决方法:

AND的优先级高于slice:运算符.

您的表情是这样的,

a[0 and 3:4] --> a[(0 and 3):4] --> a[0:4] --> [1, 2, 3, 4]
上一篇:创建没有聚集索引的mysql主键?


下一篇:修改NumPy Recarray的高级索引子集