索引错误:有时列表索引超出范围

2024-09-27 22:33:36 发布

您现在位置:Python中文网/ 问答频道 /正文

所以,基本上我想知道为什么这段代码有时能工作。。。有时它工作得很好,有时它会带来索引错误。我有一个二维列表4x100的数据。我只是简单地从第三行检索数据,把它全部加在一个变量中。你知道吗

以下是列表:

a=4
lst = [[] for _ in xrange(a)]
wifi= Wireless('wlan0')
while i<100:
    results = wifi.scan()
    print cont
    print "%-8.16s  Scan completed :" % (wifi.ifname,)
    for ap in results:
        if ap.bssid==AP1:
            lst[0].append(ap.quality.getSignallevel())

        if ap.bssid==AP2:
            lst[1].append(ap.quality.getSignallevel())

        if ap.bssid==AP3:
            lst[2].append(ap.quality.getSignallevel())

        if ap.bssid==AP4:
            lst[3].append(ap.quality.getSignallevel())
i=i+1
cont=cont+1

for j4 in range(0,100):
    num7=num7+lst[3][j4]

Tags: 数据in列表forifresultswifiap
1条回答
网友
1楼 · 发布于 2024-09-27 22:33:36

正如已经提到的,没有足够的信息来确切地告诉您索引超出范围错误的原因。你知道吗

有几个可能的原因:

  1. wifi.scan()在列表中不正好返回4个值。这就是为什么lst中的第三个列表的大小不是100。只要检查一下results列表正好有4个值。

  2. 不是所有的语句都是由于某种原因而起作用的。您需要检查每个ap项的值—只需打印出来并通读这些值。常量AP1AP2等-它们是否正确初始化?

我也会使用elif语句,而不仅仅是if。我认为这将使代码更可读性和更好。你知道吗

相关问题 更多 >

    热门问题