python - 通过列表迭代 for 不是从索引开始
问题描述
我有一个从文本文件导入的素数列表。当我使用 for 遍历列表时,它从第三个成员开始,但是当我使用 while 循环时,不会出现此问题。到目前为止,我的代码是这样的:
with open("primes.txt", "r") as f:
primes = list(f)
primes = [int(i) for i in primes]
z = 0
while z < 10: #here it starts printing "2,3,5,7,11,..."
print(primes[z])
z += 1
for x in primes: #here it starts printing "5,7,11,..."
print(primes[x])
我想知道为什么会发生这种情况,如果在创建列表时出现问题,或者是否有任何方法可以解决它。
解决方案
with open('primes.txt', 'r') as f:
# size_to_read = 100
f_content = f.readlines()
print(f_content)
primes = [int(i) for i in f_content]
# f.close()
for prime in primes:
print(prime)
f.close()
python 中有一个名为 .readlines() 的方法,您可以将其应用于文件对象,它会为您返回文本文件中所有行的列表。乐意效劳!
推荐阅读
- java - 为什么这个代码段不会产生结果?
- php - Mysql插入给出错误而Sql编辑器没有
- c - C中的窦泰勒系列
- java - 关于Spring Cloud Gateway路由配置中的ID
- android - 如果应用在没有互联网的情况下崩溃/关闭,Firebase 本地数据会怎样?
- css - 如何在圆圈内创建 + 并更改为 - 仅使用 CSS 悬停
- javascript - 我很困惑是否应该使用 URL 路径参数或查询参数在后端进行过滤?
- c++ - 如何让openCV solvepnp头部姿态估计输出更准确
- flutter - 将日期时间从上午更改为下午
- python - 刽子手游戏在整个游戏中改变单词