Python错误索引器错误:列表分配索引超出范围

2024-04-23 22:11:11 发布

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

这是我的功能代码:

    import random

    def generate(n):

        res = [0]
        x = [0]
        while x == 0:
            x[0] = random.randint(0, 9)
            res = res[0].append(x[0])
        for i in range(1, n - 1):
            x[i] = random.randint(0, 9)
            res[i] = res[i].append(x[i])
        return res

主程序代码:

^{pr2}$

当我运行程序时,我得到:

   Traceback (most recent call last):
   f = number.generate(n)
   x[i] = random.randint(0, 9)
   IndexError: list assignment index out of range

你能告诉我怎么修这个吗?谢谢:)


Tags: 代码inimport功能forreturndefrange
3条回答

使用append方法添加到列表。在

x.append(要添加到列表的值)

for i in range(1, n - 1): 
    x.append (random.randint(0, 9)) 
    res.append(x[i]) 

return res

出现此错误的原因是您正在访问x[0到n],其中只分配了x[0]。列表只有一个索引,而您正在访问更高的索引。这就是列表索引超出范围的原因。在

使用此函数生成随机数列表。在

def generate(n):
    return [random.randint(0,9) for i in range(n)]

你用1的大小初始化两个列表。然后,当您尝试访问索引为1的元素时,会出现索引错误。在

先试试这个:

import random
def generate(n):
    x = [random.randint(1, 9)] + [random.randint(0, 9) for _ in range(n-1)]
    return x

相关问题 更多 >