所以,基本上我想知道为什么这段代码有时能工作。。。有时它工作得很好,有时它会带来索引错误。我有一个二维列表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]
正如已经提到的,没有足够的信息来确切地告诉您索引超出范围错误的原因。你知道吗
有几个可能的原因:
wifi.scan()
在列表中不正好返回4个值。这就是为什么lst
中的第三个列表的大小不是100。只要检查一下results
列表正好有4个值。不是所有的语句都是由于某种原因而起作用的。您需要检查每个
ap
项的值—只需打印出来并通读这些值。常量AP1
,AP2
等-它们是否正确初始化?我也会使用
elif
语句,而不仅仅是if
。我认为这将使代码更可读性和更好。你知道吗相关问题 更多 >
编程相关推荐