求教一个 Python 在 for 循环中超出范围的古怪问题

2019-09-24 21:16:42 +08:00
 alex321

操作

我有一个文本文件,1090 行,通过 readlines 读取到一个 list 中。

代码

with open(file_path, 'rb') as f:
    lines  = f.readlines()

print(len(lines), lines[1089])

i = 0
for _ in lines:
    i += 1
print(i)

i = 0
for line in lines:
    i += 1
print(i)

问题

第一个 print 正常输出,这个没问题;第二个直接遍历 lines 计数,得到的是 1090,也没问题。

但是,第三个遍历 lines 计数,就得到的是 1055。很古怪,请大佬们指教。

1189 次点击
所在节点    问与答
2 条回复
junnplus
2019-09-25 01:00:38 +08:00
你确定代码是完整的么
Trim21
2019-09-25 01:18:20 +08:00
你中间修改过 lines 这个变量吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/603846

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX