如何实现Python代码输出的行与行号顺序反转?
实现Todo列表的逆序行号+内容输出
嘿,这事儿不难,咱们来一步步调整代码,达到你要的逆序效果!
首先看你的需求:不仅要把列表内容倒过来,行号也要从最大的数开始往下排(原列表有5个条目,行号就从5降到1)。咱们修改后的代码如下:
def ls(): with open("todo.txt",'r+') as file: lines = file.readlines() # 反转读取到的所有行内容 reversed_lines = reversed(lines) # 获取总条目数,用来生成逆序行号 total_items = len(lines) for num, line in enumerate(reversed_lines): # 用总条目数减去当前枚举的索引,得到逆序的行号 print(total_items - num, line.strip())
为什么这么改?
- 反转内容:用
reversed(lines)把原列表的顺序彻底倒过来,这样遍历的时候先输出最后一行的内容 - 生成逆序行号:原列表有5个条目(长度为5),枚举反转后的列表时索引是0到4,用
total_items - num就能得到5、4、3、2、1的行号,完美匹配你的预期 - 清理换行符:加
line.strip()是为了去掉每行末尾自带的换行符,避免输出时出现多余的空行,让格式更整洁
运行这段代码后,输出就会和你想要的完全一致:
5 Grapes
4 Apple
3 Banana
2 Starfruit
1 Lemon
内容的提问来源于stack exchange,提问作者rockraj
相关产品推荐
相关产品推荐

