我有一个 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/