"列出索引超出范围"列表清单

时间:2017-08-20 07:23:54

标签: python python-3.x

这是我的代码:

    import random

    fixed_set = random.sample(range(1, 11), 6)
    test = [[random.sample(range(1, 11), 6)] for x in range(5)]

    for x in range(5):
        for j in range(6):
            print (test[x][j])   

在第7行"打印(test [x] [j])"我收到此错误" IndexError:列表索引超出范围"我并不完全理解它为什么会发生以及如何解决它。任何帮助将不胜感激。

4 个答案:

答案 0 :(得分:2)

random.sample(range(1, 11), 6)会自动返回一个列表,无需使用[]

试试这个:

import random

test = [random.sample(range(1, 11), 6) for x in range(5)]

for x in range(5):
    for j in range(6):
        print (test[x][j])

答案 1 :(得分:0)

random.sample(range(1, 11), 6)已经返回了一个列表,但是您将其与[[random.sample(range(1, 11), 6)] for x in range(5)]中的其他列表包装在一起,因此将该行更改为此[random.sample(range(1, 11), 6) for x in range(5)]并且您的代码应该没问题:

import random

fixed_set = random.sample(range(1, 11), 6)
test = [random.sample(range(1, 11), 6) for x in range(5)]

for x in range(5):
    for j in range(6):
        print (test[x][j])

答案 2 :(得分:0)

尝试调试脚本。

"测试"变量是单个项目的列表列表,而这些列表只是1-10范围内(含)的6个整数的列表。

例如:

[[[3, 2, 8, 9, 7, 6]], [[7, 1, 3, 2, 9, 5]], [[10, 9, 2, 4, 5, 1]], [[5, 7, 9, 3, 4, 1]], [[10, 9, 2, 7, 6, 3]]]
这是你想要的吗? 也许你只想让它成为6个元素列表的列表;在这种情况下,你必须删除[random.sample(range(1,11),6)]

周围的方块组。

顺便说一下:在你的代码中永远不会使用fixed_set。

答案 3 :(得分:0)

import random
fixed_set = random.sample(range(1, 11), 6)  
test = [random.sample(range(1, 11), 6) for x in range(5)]
print (fixed_set)
print (test)
for x in range(5):
    for j in range(6):
        print (test[x][j])

这个对你有帮助。 您必须仔细制作test列表清单。

另一种只改变print方法的方法。

import random
fixed_set = random.sample(range(1, 11), 6)
test = [[random.sample(range(1, 11), 6)] for x in range(5)]
print (fixed_set)
print (test)
for x in range(5):
    for j in range(6):
        print (test[x][0][j])

根据您的print列表,test方法有一些变化。