首页 > 解决方案 > 通过列表迭代 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])

我想知道为什么会发生这种情况,如果在创建列表时出现问题,或者是否有任何方法可以解决它。

标签: pythonpython-3.xlist

解决方案


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() 的方法,您可以将其应用于文件对象,它会为您返回文本文件中所有行的列表。乐意效劳!


推荐阅读