python3x:索引器元组超出范围

2024-05-20 01:52:50 发布

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

我在这个项目上遇到了麻烦,这个项目在编码后立即开始工作,但是在PyCharm中就这样中断了:

Traceback (most recent call last):
line 38, in <module>
1

    exec("dict" + str(x) + "['Team'] = '" + Sponsors[randint(1, len(Sponsors))] + " " + Cars[randint(1, len(Cars))] + "'")
IndexError: tuple index out of range

如何修复此错误? 另外,如果是火车失事,请告诉我:我是Python的一个相对新手,可能会以冗长的方式做事。在

^{pr2}$

Tags: 项目inmost编码lenlinecallcars
1条回答
网友
1楼 · 发布于 2024-05-20 01:52:50

生成的索引介于1和元组长度之间(包括元组的长度):

Sponsors[randint(1, len(Sponsors))]

Python索引从0开始,而不是1,最后允许的索引是长度减去1,因此排它,不包含。这就是你的IndexError的原因:

^{pr2}$

您必须使用Sponsors[random.randrange(len(Sponsors))],或者更好的是使用random.choice(Sponsors)

>>> from random import choice
>>> choice(Sponsors)
'WD40'
>>> choice(Sponsors)
'Blitz'

为你处理好了界限。在

接下来,不需要在代码中使用exec()或{}。创建一个顶级列表来容纳您的团队:

^{4}$

再加上你的字典。这样,您就可以为第一个团队寻址teams[0],等等,而不是生成像dict1和{}这样的名称。在

相关问题 更多 >