首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何修复“列表索引超出范围”的错误?

如何修复“列表索引超出范围”的错误?
EN

Stack Overflow用户
提问于 2019-05-14 18:16:36
回答 1查看 71关注 0票数 1

我一直收到"list index out of range“错误。我一直在谷歌上搜索解决方案,但我找不到任何适合我的问题的东西。

我尝试使用其他随机的东西,比如random.shuffle()randint()

代码语言:javascript
复制
import random
svart = [18,28,38,58,68,78,88,47,46,45,44,43,42,41,37,26,15,57,66,75,84] 
vit = [11,21,31,51,61,71,81,42,43,44,45,46,47,48,32,23,14,52,63,74,85]

def schack(svart,vit):
    hit = 0
    miss = 0
    for i in range(10000):
        random.choice(svart)
        random.choice(vit)
        if svart == vit:
            i = i + 1

        elif svart[18] == vit[11]:
            hit += 1

        elif svart[28] == vit[21]:
            hit += 1

        elif svart[38] == vit[31]:
            hit += 1

        elif svart[58] == vit[51]:
            hit += 1

        elif svart[68] == vit[61]:
            hit += 1

        elif svart[78] == vit[71]:
            hit += 1

        elif svart[88] == vit[81]:
            hit += 1

        elif svart[7,46,45,44,43,42,41] == vit[42,43,44,45,46,47,48]:
            hit += 1

        elif svart[37] == vit[31,47,32]:
            hit += 1

        elif svart[26] == vit[21,23,46]:
            hit += 1

        elif svart[15] == vit[11,45,14]:
            hit += 1

        elif svart[57] == vit[51,52,47]:
            hit += 1

        elif svart[66] == vit[46,61,63]:
            hit += 1

        elif svart[75] == vit[71,45,74]:
            hit += 1

        elif svart[84] == vit[81,44,85]:
            hit += 1

        elif svart[38,37,42] == vit[32]:
            hit += 1

        elif svart[28,43,26] == vit[23]:
            hit += 1

        elif svart[18,15,44] == vit[14]:
            hit += 1

        elif svart[58,42,57] == vit[52]:
            hit += 1

        elif svart[68,43,66] == vit[63]:
            hit += 1

        elif svart[78,44,75] == vit[74]:
            hit += 1

        elif svart[84,88,45] == vit[85]:
            hit += 1


        else:
            miss += 1

    print hit
    print miss

schack(svart,vit)

这是一个所谓的国际象棋模拟器,它将获取一个值并比较两个列表中的数字。如果数字“互相威胁”,就会加一分。如果这两个值相同,它将不会记录命中或未命中,并添加额外的循环回合。

我不知道我是不是不正确地比较了这些值,或者我做错了什么。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2019-07-08 21:17:48

下面给出了列表的第29个元素"svart":svart[28]

但是这个列表只有21个元素。因此,您正在访问的元素超出了可能的范围。这就是为什么会出现"list index out of range“错误的原因。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56128086

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档