私は今、困惑しています。このコードは有効に見えますが、何度構文を変更しようとしても、同じ結果になります。
基本的に、私の問題は、リストをネストしたリスト nxn マトリックスを作成したにもかかわらず、特定の行のエントリに値を割り当てようとすると、TypeError ie が発生することです。
TypeError: 'tuple' object does not support item assignment
Python 2.7 を使用しています。Python のバグではなく、私のせいだと思います。説明が必要です。コードを試して、あなたの com で動作するかどうかを教えてください。そうでない場合は、可能であれば問題を明らかにしてください。前もって感謝します。
ここにコードがあります
import sys
class Matrix:
def __init__(self, n):
"""create n x n matrix"""
self.matrix = [[0 for i in range(n)] for i in range(n)]
self.n = n
def SetRow(self, i, x):
"""convert all entries in ith row to x"""
for entry in range(self.n):
self.matrix[i][entry] = x
def SetCol(self, j, x):
"""convert all entries in jth column to x"""
self.matrix = zip(*self.matrix)
self.SetRow(j, x)
self.matrix = zip(*self.matrix)
def QueryRow(self, i):
"""print the sum of the ith row"""
print sum(self.matrix[i])
def QueryCol(self, j):
"""print the sum of the jth column"""
self.matrix = zip(*self.matrix)
x = sum(matrix[j])
self.matrix = zip(*self.matrix)
print x
mat = Matrix(256) # create 256 x 256 matrix
with open(sys.argv[1]) as file: # pass each line of file
for line in file:
ls = line.split(' ')
if len(ls) == 2:
query, a = ls
eval('mat.%s(%s)' %(query, a))
if len(ls) == 3:
query, a, b = ls
eval('mat.%s(%s, %s)' % (query, a, b))
ここにファイル作成スクリプト:
file = open('newfile', 'w')
file.write("""SetCol 32 20
SetRow 15 7
SetRow 16 31
QueryCol 32
SetCol 2 14
QueryRow 10
SetCol 14 0
QueryRow 15
SetRow 10 1
QueryCol 2""")
file.close()