python错误:“索引错误:字符串索引超出范围”

时间:2016-01-03 19:22:20

标签: python python-2.7

我的代码出了问题。当我试图从数组中找到progId元素中的索引时,我收到错误。

当我尝试这个时:

for index in range(0, self.channel_count):
    test = progId[index]
    test_index = index
    print test

错误是跳到这一行:

test = progId[index]

错误是:IndexError:字符串索引超出范围

以下是完整代码:

self.channel_count = 0

if start_time < current_time < stop_time:
    print "program is half way"
    progId = list()

    for index in range(0, self.channel_count):
        test = progId[index]
        test_index = index
        print test_index
self.channel_count += 1

以下是self.channel_count

的值列表
19:13:23 T:6056  NOTICE: 0
19:13:23 T:6056  NOTICE: 1
19:13:23 T:6056  NOTICE: 2
19:13:23 T:6056  NOTICE: 3
19:13:23 T:6056  NOTICE: 4
19:13:23 T:6056  NOTICE: 5
19:13:23 T:6056  NOTICE: 6

以下是progId列表中的元素列表:

19:16:40 T:2112  NOTICE: 3003
19:16:40 T:2112  NOTICE: 3131
19:16:40 T:2112  NOTICE: 3259
19:16:40 T:2112  NOTICE: 3387
19:16:40 T:2112  NOTICE: 3515
19:16:40 T:2112  NOTICE: 3643
19:16:40 T:2112  NOTICE: 3771

你能告诉我如何修复错误吗?

编辑:当我尝试这样做时:

program_index = str(self.program_index)

for index in program_index:
    print index

我使用program_index

将其作为值
19:51:01 T:2888  NOTICE: 1
19:51:01 T:2888  NOTICE: 2
19:51:01 T:2888  NOTICE: 3
19:51:01 T:2888  NOTICE: 4

以下是progId列表中的元素列表:

19:16:40 T:2112  NOTICE: 3003
19:16:40 T:2112  NOTICE: 3131
19:16:40 T:2112  NOTICE: 3259
19:16:40 T:2112  NOTICE: 3387
19:16:40 T:2112  NOTICE: 3515
19:16:40 T:2112  NOTICE: 3643
19:16:40 T:2112  NOTICE: 3771

我想得到这样的结果:

19:16:40 T:2112  NOTICE: 3131
19:16:40 T:2112  NOTICE: 3259
19:16:40 T:2112  NOTICE: 3387
19:16:40 T:2112  NOTICE: 3515

那么如何使用索引从数组中找到元素?

2 个答案:

答案 0 :(得分:3)

在for循环的第一次运行中,self.channel_count为0.因此,range(0, self.channel_count)将是一个空列表,并且您将使&#34;索引超出范围&# 34。

答案 1 :(得分:-1)

只需将range(0, self.channel_count)更改为range(len(progId))即可。目前尚不清楚变量self.channel_countprogId包含哪些内容。