这是我的代码:
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:列表索引超出范围"我并不完全理解它为什么会发生以及如何解决它。任何帮助将不胜感激。
答案 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
方法有一些变化。