我目前正在学习Python,但遇到了一点小问题.我正在构建一个简单的待办事项列表,并且我已经将其构建为仅当第一个字符是❌时才显示列表.这是可行的,但是当一个项目被标记为完成(带有✅)时,它仍然会在下面的代码中计算索引的增量.

我假设if语句中的index += 1只有在满足条件的情况下才会递增索引-事实并非如此吗?

def read_list():
read_list = open("todo.txt","r", encoding='utf-8')
for index, item in enumerate(read_list, 1):
    item = item.rstrip('\n')
    if item[0] == '❌':
        print(f'{index}. {item}')
        index += 1

此命令的当前输出为:

1. ❌ TASK 1
3. ❌ TASK 2

这是因为列表上的第二个项目是‘✅TASK 3’

推荐答案

for index, item in ...已经等于index了.在您的第一个循环中,打印(当前索引1),然后添加(当前索引1)+1,即2,然后用for loop递增+1.所以在您的第二个循环中,它打印3.

在for循环之外创建一个单独的变量:

numTasksIncomplete = 0
for index, item in enumerate(read_list, 1):
    item = item.rstrip('\n')
    if item[0] == '❌':
        print(f'{index}. {item}')
        numTasksIncomplete += 1

Python相关问答推荐

Pandas 除以一列中出现的每个值

具有症状的分段函数:如何仅针对某些输入值定义函数?

返回nxon矩阵的diag元素,而不使用for循环

如何使用scipy从频谱图中回归多个高斯峰?

标题:如何在Python中使用嵌套饼图可视化分层数据?

为什么符号没有按顺序添加?

使用setuptools pyproject.toml和自定义目录树构建PyPi包

如何在python polars中停止otherate(),当使用when()表达式时?

Python解析整数格式说明符的规则?

如何让这个星型模式在Python中只使用一个for循环?

多指标不同顺序串联大Pandas 模型

在matplotlib中删除子图之间的间隙_mosaic

Polars asof在下一个可用日期加入

LocaleError:模块keras._' tf_keras. keras没有属性__internal_'''

Beautifulsoup:遍历一个列表,从a到z,并解析数据,以便将其存储在pdf中.

在numpy数组中寻找楼梯状 struct

数据框,如果值在范围内,则获取范围和

如何使用大量常量优化代码?

有没有一种方法可以在朗肯代理中集成向量嵌入

在MongoDB文档中仅返回数组字段