[英]“List index out of range” for list of lists
這是我的代碼:
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 [x] [j]])”)中,我收到此錯誤“ IndexError:列表索引超出范圍”,我不完全了解為什么會發生它以及如何解決它。 任何幫助,將不勝感激。
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])
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])
嘗試調試您的腳本。
“ test”變量是單個項目列表的列表,而列表又是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。
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])
根據您的test
列表, print
方法有所變化。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.