我有以下 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/