在python中是否有任何方法或指定参数可以在跳过None值时使用enumerate?
在python中,有没有方法在跳过None值的同时枚举列表? 我有一个要求,我想得到满足一定算术条件的所有列表元素的索引。但我的列表也不包含任何值。因此,每当在枚举时遇到在python中是否有任何方法或指定参数可以在跳过None值时使用enumerate?,python,Python,在python中,有没有方法在跳过None值的同时枚举列表? 我有一个要求,我想得到满足一定算术条件的所有列表元素的索引。但我的列表也不包含任何值。因此,每当在枚举时遇到None时,就会出现以下错误: TypeError: '>=' not supported between instances of 'NoneType' and 'int' 另外,我不想通过删除所有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]