我正在尝试从以下列表中找到第一个空项的索引:
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
答案 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])