簡體   English   中英

列表列表的“列表索引超出范圍”

[英]“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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM