请解释(python):示例列表[a<;b]

请解释(python):示例列表[a<;b],python,list,comparison-operators,Python,List,Comparison Operators,我在阅读时发现了一个我不熟悉的python列表语法 问题:在列表的[]中使用有什么作用 e、 g.示例列表[aex=[1,2,3,4] >>>ex[0>>ex[0>5] 1. >>>ex[0>3] 1. >>>ex[0>0] 1. >>>ex[0>>ex[1>>ex[1它们是逻辑计算。如果语句为真,则返回1;如果语句为假,则返回0。这种语法在常规Python和numpy中都有效,但在每个位置执行不同的操作 对于常规Python数字和容器,执行sequence[a

我在阅读时发现了一个我不熟悉的python列表语法

问题:在列表的
[]
中使用
有什么作用

e、 g.
示例列表[a

我在一些航站楼玩过,但这无助于我理解任何事情:

>>> ex = [1,2,3,4]
>>> ex[0<5]
2
>>> ex[0>5]
1
>>> ex[0>3]
1
>>> ex[0>0]
1
>>> ex[0<0]
1
>>> ex[1<0]
1
>>> ex[1<5]
2
>ex=[1,2,3,4]
>>>ex[0>>ex[0>5]
1.
>>>ex[0>3]
1.
>>>ex[0>0]
1.

>>>ex[0>>ex[1>>ex[1
它们是逻辑计算。如果语句为真,则返回1;如果语句为假,则返回0。

这种语法在常规Python和numpy中都有效,但在每个位置执行不同的操作

对于常规Python数字和容器,执行
sequence[a
首先计算
a
并获得boolan值(
True
False
)。布尔值是Python中整数的一个子类,因此它们是列表和元组等序列的可接受索引。您有时会看到类似
[1,-1]的代码[a
用作条件表达式
-1的简写,如果a

在numpy代码中,情况要复杂一些。如果
a
和/或
b
值是numpy数组,那么表达式
a
将是一个具有适当维度的布尔数组。然后可以将该数组用作另一个numpy数组的索引。例如,可以提取num中大于10的值py array
a
a[a>10]
。这是您链接到的另一个问题中使用的逻辑。

请阅读
p类似地,因为0不大于3,并且列表中的第0项是1,所以codeex[0>5]
给出值
1

否,它返回
True
False
,但这些值通过
列表中
调用方法的内部将其转换为
int
,将它们转换为1和0。它返回ex列表中位置1处的对象,因此为2。
0@mwaso,很有趣,谢谢。你知道t是什么吗他的numpy特性/语法被称为?更准确地说:您的代码只是在整数上下文中计算布尔值(比较的结果)(由
[]
运算符预期)。但是在scipy工具包中(numpy,pandas)扩展标准python itemgetter语法有一些新功能。不幸的是,我遇到了问题,如果不检查它是如何调用的(选择器?),我现在记不起来了。值得注意的是,在处理numpy数组时,通常情况下,小于运算符不会返回布尔值。
>>> True == 1
True
>>> False == 0
True
>>> 'ab'[True]
'b'
>>> 'ab'[False]
'a'
>>> a = 'aa'
>>> b = 'bb'
>>> [10, 20][a>b]
10
>>> 20 if a > b else 10
10