gpt4 book ai didi

python - 索引错误 : list index out of range Python 2. 7.x

转载 作者:太空宇宙 更新时间:2023-11-04 08:11:56 25 4
gpt4 key购买 nike

我正在阅读 Python for Informatics 的第 8 章,并被要求重写以下函数的练习:

fhand = open('mbox-short.txt')
count = 0
for line in fhand:
words = line.split()
#print 'Debug:', words
if len(words) == 0:
continue
if words[0] != 'From':
continue
print words[2]

我被要求使用单个复合 if 语句重写它,所以我写了以下内容:

fhand = open('mbox-short.txt')
#count = 0 <-- not even sure why this is in the orginal
for line in fhand:
words = line.split()
print 'Debug:', words
if len(words) == 0 and words[0] != 'From':
continue
print words[2]

第一个函数工作正常,但第二个函数出现以下错误:

Traceback (most recent call last):
File "ch8.py", line 258, in <module>
print words[2]
IndexError: list index out of range

我不明白为什么我写的东西会返回错误,据我所知我正在做同样的事情,但显然我错了,我只是不明白为什么。也许有一个微妙的问题我没有注意到。

谢谢,

更新

Instructions '使用复合逻辑表达式,使用 and 逻辑运算符和单个 if 语句。

最佳答案

在原始代码中

    if len(words) == 0:
continue
if words[0] != 'From':
continue

任一情况下,您都到达了continue。因此单行版本应该是

if len(words) == 0 or words[0] != 'From':
# ^ or, not and
continue

如果您需要使用and,则需要进行更多重构,切换print 和(现在隐含的)continue 并反转测试:

if len(words) > 0 and words[0] == 'From':
print words[2]

关于python - 索引错误 : list index out of range Python 2. 7.x,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20820153/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com