inm*_*320 4 python expression tuples list slice
使用numpy数组,您可以在方括号切片语法中使用某种不等式:
>>>arr = numpy.array([1,2,3])
>>>arr[arr>=2]
array([2, 3])
Run Code Online (Sandbox Code Playgroud)
常规python数据结构中是否存在某种等价语法?我尝试时遇到错误:
>>>lis = [1,2,3]
>>>lis[lis > 2]
2
Run Code Online (Sandbox Code Playgroud)
但不是某种类型的异常,我得到的返回值为2,这没有多大意义.
ps我根本找不到这个语法的文档,所以如果有人能指出我的numpy和常规python(如果它存在)那将是伟大的.
在Python 2.x中lis > 2返回True.这是因为操作数具有不同的类型,并且没有为这两种类型定义比较运算符,因此它按字母顺序("list" > "int")比较类名.既然True是相同的1,你得到索引1的项目.
在Python 3.x中,这个表达式会给你一个错误(一个不那么令人惊讶的结果).
TypeError: unorderable types: list() > int()
要做你想做的事,你应该使用列表理解:
[x for x in lis if x > 2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
379 次 |
| 最近记录: |