簡體   English   中英

填充二維列表

[英]Populating a 2D list

我正在嘗試將 100 個數字方塊輸入 2D 列表https://i.stack.imgur.com/eSFiO.png ,每個列表包含 10 個數字 1-10,11-20,21-30 等等。 到目前為止,這是我的代碼,但是當我在編輯器中運行它時,它只會繼續運行並最終崩潰而沒有打印任何內容。 請向我解釋我做錯了什么。 謝謝

number_square=[[],[],[],[],[],[],[],[],[],[]]
number_list=[1,2,3,4,5,6,7,8,9,10]
for row in number_square:
  for number in number_list:
    number_square.append(number)
    number_list.remove(number)
    number_list.append(number+10)  
print(number_square)

您的代碼需要進行許多更改。 您在嘗試代碼方面付出了很大的努力。 我已經修改了代碼,您可能可以從中獲取邏輯。

number_square=[[],[],[],[],[],[],[],[],[],[]]
number_list=[10,20,30,40,50,60,70,80,90,100]
for i in range(0,len(number_square)):
  for j in range(number_list[i]-9,number_list[i]+1):
    number_square[i].append(j)

問題:

  1. 在迭代它時number_list中刪除
  2. 附加到number_square而不是row

如果我是你,我會使用帶有range列表推導:

number_square = [list(range(i, i+10)) for i in range(1, 101, 10)]

由於Onyambu評論中提出了類似的建議

那是因為您沒有訪問for循環rownumber的內容。 這是一個建議:

number_square=[[],[],[],[],[],[],[],[],[],[]]
number_list=[1,2,3,4,5,6,7,8,9,10]
i = 0
for row in number_square:
 for i in range(len(number_list)):
   row.append(number_list[i])
   number_list[i] += 10       
print(number_square)

請注意,第一個循環等效於for each 在此語法中,您不能更改列表中項目的值。 在第二個循環中,我放置了一個帶有range的“傳統” for循環來更改number_list中的值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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