我正在阅读excel电子表格,试图删除第一列值与“36.0∞C”或“0.0∞C”不匹配的行。现在我正在尝试创建一个要删除的行列表,所以在我创建温度列(“temperatureList”)中所有温度值的列表后,我可以删除“deleteCellList”列表中的行。这是我的代码:
temperatureList = []
deleteCellList = []
tempRowNumber = 1
while currentRowValue:
currentRowValue = sheet[(f"B{tempRowNumber}")].value
print(type(currentRowValue))
print("Current Row Value")
print(currentRowValue)
if currentRowValue != "0.0 ∞C":
deleteCellList.append(tempRowNumber)
elif currentRowValue != "18.0 ∞C":
deleteCellList.append(tempRowNumber)
else:
temperatureList.append(currentRowValue)
tempRowNumber += 1
print("DCL")
print(deleteCellList)
我发现我遇到的问题是这个算法在这里添加了所有可能有5-6个值的单元格,如下面的输出所示:
它不应该看起来如何: DCL [1,2,3,4 .....]
我试图让它看起来像这样:
DCL [45,78,203,408]
我已经尝试打印每个单元格值,返回类似“36.0∞C”的内容,因此我认为没有任何恶意空间可以将其搞砸。话虽这么说,到目前为止,我已经尝试了所有我知道的东西,关于潜在问题/解决方案可能存在的任何直觉?
答案 0 :(得分:0)
两个澄清以避开:
除了这两个之外,问题在于你如何应用你的逻辑:
if currentRowValue != "0.0 ∞C": ## If a value does not equal "0.0 ∞C"
deleteCellList.append(tempRowNumber)
elif currentRowValue != "18.0 ∞C": ## Otherwise (if the value DOES equal "0.0 ∞C"), if the value does not equal "18.0 ∞C"
deleteCellList.append(tempRowNumber)
else: ## Otherwise (if the value equals "0.0 ∞C" and also equals "18.0 ∞C")
temperatureList.append(currentRowValue)
因此,例如“0.0∞C”,“18.0∞C”和“1000.0001∞C”的值:
您要做的是检查值不在的可接受值列表中,因此最简单的解决方法是更改逻辑以反映:
if currentRowValue not in ["0.0 ∞C","18.0 ∞C"]:
deleteCellList.append(tempRowNumber)
else:
temperatureList.append(currentRowValue)
希望有所帮助:)