簡體   English   中英

(Python)元組/列表分配

[英](Python) Tuple/List Assignment

目前要分配我的變量,我有這個:

rows = [[convert[random.randint(0,7)] for _ in range(5)] for _ in range(5)]
printedrows = [("[X]","[X]","[X]","[X]","[X]","  <- V: {}   TOTAL: {}".format(row.count(0), sum(row))) for row in rows]

這將創建5個具有隨機值的行:

('[X]', '[X]', '[X]', '[X]', '[X]', '  <- V: 1   TOTAL: 9') 
('[X]', '[X]', '[X]', '[X]', '[X]', '  <- V: 2   TOTAL: 5') 
('[X]', '[X]', '[X]', '[X]', '[X]', '  <- V: 0   TOTAL: 6') 
('[X]', '[X]', '[X]', '[X]', '[X]', '  <- V: 1   TOTAL: 10') 
('[X]', '[X]', '[X]', '[X]', '[X]', '  <- V: 0   TOTAL: 8')

我想將“ X”重新分配給數字,以便其顯示為:

('[X]', '[2]', '[X]', '[X]', '[X]', '  <- V: 1   TOTAL: 9') 
('[1]', '[X]', '[3]', '[0]', '[1]', '  <- V: 2   TOTAL: 5') 
('[X]', '[X]', '[1]', '[X]', '[X]', '  <- V: 0   TOTAL: 6') 
('[1]', '[X]', '[X]', '[X]', '[2]', '  <- V: 1   TOTAL: 10') 
('[X]', '[3]', '[X]', '[2]', '[X]', '  <- V: 0   TOTAL: 8')

但是,當我使用此命令時:(僅作為示例-位置由用戶確定)

convert = {0:0,1:1,2:2,3:3,4:0,5:1,6:2,7:1}

printedrows[y][x] = rows[y][x]
TypeError: 'tuple' object does not support item assignment

我可以做些什么來解決此問題,以便我可以更改值而不會出現錯誤? 謝謝。

您正在使用元組創建列表:

printedrows = [("[X]","[X]","[X]","[X]","[X]","  <- V: {}   TOTAL: {}".format(row.count(0), sum(row))) 
               for row in rows]

您可以改為列出這些列表:

printedrows = [["[X]","[X]","[X]","[X]","[X]","  <- V: {}   TOTAL: {}".format(row.count(0), sum(row))] 
               for row in rows]

注意方括號,而不是那里的圓括號。

暫無
暫無

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

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