python - 尝试检查列表列表中的值是否小于零时出现错误 'float' 对象不可迭代

标签 python python-3.x

我有一个 list

d = [[-3.0, -3.0, -5.0, -4.0, -2.0], [-1.0, 1.0, -1.0, -2.0, 4.0], [-5.0, -4.0, -6.0, -6.0, -2.0], [-1.5, -2.5, -2.5, -1.5, -3.5]]

我的目标是创建另一个名为 Final 的列表,这样,如果列表 d 中特定列表中的所有值都小于零,则在 Final 中插入 True,否则追加 False

示例

each element in list d[0] is less than zero then insert True in Final
each element in list d[1] is not less than zero then insert False in Final

Therefore the desired output of Final = [True, False, True, True]

我为此目的编写了以下代码:

d = [[-3.0, -3.0, -5.0, -4.0, -2.0], [-1.0, 1.0, -1.0, -2.0, 4.0], [-5.0, -4.0, -6.0, -6.0, -2.0], [-1.5, -2.5, -2.5, -1.5, -3.5]]

Final = []

for i in range(len(d)):
    for j in range(len(d[0])):
        if all((p>0) for p in d[i][j]):
            final.append(True)
        else:
            final.append(False)

但是,当我运行代码时,出现错误“float”对象不可迭代

我尝试在 stackover flow 上查找此错误 ( how to solve TypeError: 'float' object is not iterable )

但是,由于我正在尝试检查列表中的列表,因此我不确定如何进行操作。感谢任何见解。

提前致谢。

最佳答案

在列表理解中使用all()

示例:

d = [[-3.0, -3.0, -5.0, -4.0, -2.0], [-1.0, 1.0, -1.0, -2.0, 4.0], [-5.0, -4.0, -6.0, -6.0, -2.0], [-1.5, -2.5, -2.5, -1.5, -3.5]]

Final = [all(j < 0 for j in i) for i in d]
print(Final) 

输出:

[True, False, True, True]

关于python - 尝试检查列表列表中的值是否小于零时出现错误 'float' 对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57218697/

相关文章:

python - 我应该如何优化这些 if/elseif 分支以提高速度?

python - 如何更改 Plotly 保存图像的步骤?

python - 如何按最佳匹配(difflib 比率)对字符串列表进行排序

python-3.x - PySide2 应用程序启动失败

python - 如何使用 Python 3.4.2 在 Windows 7 中安装 scipy

python - 尝试拟合回归模型时出现 ValueError

python - 生成一个列表,当遍历该列表时,其元素对应于不同列表的特定值的计数

python - 将图像堆叠为 numpy 数组更快(比预分配)?

python - 空状态的 Airflow 任务

python 3 : error when dump/load sympy lambdify-epression