python - (Python) 元组/列表赋值

标签 python list python-3.x dictionary tuples

目前要分配我的变量,我有这个:

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]

请注意方括号而不是圆括号。

关于python - (Python) 元组/列表赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20686723/

相关文章:

python - 无法将列表的值插入 csv 的分隔行中

python - 如何创建图神经网络数据集? (pytorch 几何)

python - 在python中使用zip函数时出错

Python3 使用字典替换

python - Heroku 工作进程和时钟进程如何定价?

python - 在 Python 中从内存中解析 CSV 数据

python - 打印链接到列表中键的字典值

arrays - 是否可以在 F# 中定义列表的长度?

python - 这个 for 循环可以减少到一行吗?

python - 如何使用漂亮的汤从 html 文档中获取 <text> 标签