python - 计算 if 循环的迭代次数

标签 python loops if-statement

我有以下 if 循环:

for line in content[:-1]:
 # if the line has No Data in it
    if line.find("No Data"):
        line = line.replace("No Data", "0")

if 循环的作用是读取名为“Content”的列表的每一行,当它检测到单词“No Data”时,它会将它们替换为零值。我想做的是计算此更改完成了多少次;我尝试过以下方法:

ctr=0
for line in content[:-1]:
    if line.find("No Data"):
        line = line.replace("No Data", "0")
        ctr +=1

但我得到的是 crt 等于行的总值,而不是更改完成的次数。

最佳答案

str.find 返回字符串的位置(如果找到)或-1。所以:

if line.find("No Data")True 时:

  • 未找到(因为值 -1)
  • 数据不在行首

当数据位于字符串中但位于行的开头时,它是False

这是一个典型的错误。解决方案:不要使用 find 因为你不关心数据的位置,只需这样做:

if "No data" in line:

关于python - 计算 if 循环的迭代次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54807954/

相关文章:

Python numpy C++ 绑定(bind)

php - Twig - 打印没有空值的数组

linux - 定义范围的 bash for 循环不起作用

ruby - 帮助重构这段代码

java - 简单的 if 语句无法正常工作

python - 如何在GroupBy对象的每个组中删除某个索引处的行?

python - 与在线工具和 Google map 相比,为什么我的 Python 半正弦距离计算是错误的?

javascript - es6 使用 var、let 或 const 迭代对象?

bash - 我怎样才能grep变量中的复杂字符串?

python - 来自 json.dumps 的奇怪类型错误