为什么出现此“列表索引超出范围”错误?

时间:2020-06-21 22:33:28

标签: python loops dictionary index-error

dc:返回文本文件中的多行

#lang racket (require racket/match) (require racket/generator) (require (prefix-in dc: data/collection)) (sequence->list (in-generator (let recur ([seq '(1 2 3)]) (match seq [(dc:sequence) (void)] [(dc:sequence next next-rest ...) (yield next) (recur next-rest)])))) 返回文本文件的任何行,并且每行(在我的文本文件中)都有三个制表符('\ t')

如果我在不执行循环的情况下运行程序,则会得到所需的答案,但是当我使用for循环时,会不断收到错误消息

(dictConcepts [a_string [0],a_string [2] .rstrip('\ n')] = a_string [1]
IndexError:列表索引超出范围)

这是我的代码:

def numline(name)

1 个答案:

答案 0 :(得分:1)

现在,如果:

a_string = anyLine(name, i).split('\t')

不会产生至少三个长度的列表(即\t在该行中出现两次),您的代码将因索引错误而失败。

您可以对try / except进行编程,以免索引不存在的内容:

a_string = anyLine(name, i).split('\t')
try:
    dictConcepts[a_string[0], a_string[2].rstrip('\n')] = a_string[1]
except IndexError:
    print('something is not right here')