python设置矩阵加法运算
python set matrix add operation
我的输入矩阵是这样的
grid = [[1,1,2],[1,2,3],[3,2,4]]
我正在使用以下代码构建集合矩阵。
m,n = len(grid), len(grid[0])
valuesets = [[set()]*n for _ in range(m)]
for j in range(n):
s = sum(grid[0][:j+1])
valuesets[0][j].add(s)
print valuesets[0][0]
输出给了我
set([1])
set([1, 2])
set([1, 2, 4])
我想知道为什么 valuesets[0][0] 每次在 for 循环中都被更新,但没有像我预期的那样保持相同的值集 ([1])?谢谢
原因是 [set()] * n
通过复制相同的 set()
实例创建了一个列表。
如果要获取不同集合对象的列表,请使用 [set() for _ in range(n)] instead
。
我的输入矩阵是这样的
grid = [[1,1,2],[1,2,3],[3,2,4]]
我正在使用以下代码构建集合矩阵。
m,n = len(grid), len(grid[0])
valuesets = [[set()]*n for _ in range(m)]
for j in range(n):
s = sum(grid[0][:j+1])
valuesets[0][j].add(s)
print valuesets[0][0]
输出给了我
set([1])
set([1, 2])
set([1, 2, 4])
我想知道为什么 valuesets[0][0] 每次在 for 循环中都被更新,但没有像我预期的那样保持相同的值集 ([1])?谢谢
原因是 [set()] * n
通过复制相同的 set()
实例创建了一个列表。
如果要获取不同集合对象的列表,请使用 [set() for _ in range(n)] instead
。