Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中是否有任何方法或指定参数可以在跳过None值时使用enumerate?_Python - Fatal编程技术网

在python中是否有任何方法或指定参数可以在跳过None值时使用enumerate?

在python中是否有任何方法或指定参数可以在跳过None值时使用enumerate?,python,Python,在python中,有没有方法在跳过None值的同时枚举列表? 我有一个要求,我想得到满足一定算术条件的所有列表元素的索引。但我的列表也不包含任何值。因此,每当在枚举时遇到None时,就会出现以下错误: TypeError: '>=' not supported between instances of 'NoneType' and 'int' 另外,我不想通过删除所有None值然后在上面枚举来创建一个新列表,因为这样会改变其余元素的索引,并且不会得到所需的输出 因此,让我们假设以下是我的

在python中,有没有方法在跳过None值的同时枚举列表? 我有一个要求,我想得到满足一定算术条件的所有列表元素的索引。但我的列表也不包含任何值。因此,每当在枚举时遇到
None
时,就会出现以下错误:

TypeError: '>=' not supported between instances of 'NoneType' and 'int'
另外,我不想通过删除所有None值然后在上面枚举来创建一个新列表,因为这样会改变其余元素的索引,并且不会得到所需的输出

因此,让我们假设以下是我的清单:

l = [None, 5, 0, 7, 2, 11]
我需要0到5之间的所有元素的
索引
因此,我的输出应该如下所示:

output = [1, 2, 4]
到目前为止,我所使用的给出上述错误的确切语法是:

result = np.array([[i, v] for i, v  in enumerate(l) if v >= 0 and v <= 5])

result=np.array([[i,v]表示枚举(l)中的i,v),如果v>=0且v非常简单-只需在您的条件中添加一个检查
None

result = np.array([[i, v] for i, v  in enumerate(l) if v is not None and v >= 0 and v <= 5])

result=np.array([[i,v]对于枚举(l)中的i,v),如果v不是None且v>=0且v您可以添加条件来检查
v
是否是
None
。您还应该修改结果,
[i,v]
将返回索引和值的列表,因此
结果
将是列表的列表
[1 5][2]

result = np.array([i for i, v in enumerate(l) if v is not None and 0 <= v <= 5])
# output [1 2 4]

result=np.array([i for i,v in enumerate(l)如果v不是None,0@lenik op对结果的查询
[1,2,4]
[i,v]
不会产生它。@Ixop我真傻,没有想到它?这确实是一个非常简单的解决方案。非常感谢!)
result = np.array([i for i, v in enumerate(l) if v is not None and 0 <= v <= 5])
# output [1 2 4]