Python - 查找列表中第一个空项的索引

时间:2016-11-09 17:49:33

标签: python list

我正在尝试从以下列表中找到第一个空项的索引:

list_ = [10000.0, 6000.0, nan, nan, nan]

并将正确的输出显示为索引:

2

我一直在指代link中的代码,但我一直在接收" StopIteration:"错误信息。有人有解决方案吗?

这是我到目前为止的代码:

try:
    next(i for i, j in enumerate(list_) if j == "nan")
except StopIteration:
    pass

3 个答案:

答案 0 :(得分:4)

您的检查条件有误,它会尝试查找等于字符串 Dim myarr() as String Dim num as String myarr = Split(inputLine, ",") For each num in myarr ...... Next num 的项目。要检查float var是否为nan,请使用"nan"

答案 1 :(得分:3)

这个有点棘手,因为nan不等于它自己。

但是,使用isnan

可以轻松适应当前的解决方案
import math

try:
    index = next(i for i, j in enumerate(list_) if math.isnan(j))
except StopIteration:
    # nan is not in the list 
    pass

答案 2 :(得分:0)

这可能是一种更加诡计多端的方式,但这就是我要做的事情:

def sortStudents(a):
    return sorted(a, key=lambda x: [-x[1] if isinstance(x[1], int) else x[1]] 
                                   + x[0].split()[::-1])