【问题标题】:python set matrix add operationpython设置矩阵加法运算
【发布时间】:2023-03-05 01:24:01
【问题描述】:

我的输入矩阵是这样的

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])

我想知道为什么 valueset[0][0] 每次在 for 循环中都会更新,但不像我预期的那样保持相同的值 set([1])?谢谢。

【问题讨论】:

标签: python set add


【解决方案1】:

原因是[set()] * n 通过复制相同的set() 实例创建了一个列表。

如果您想获取不同集合对象的列表,请使用[set() for _ in range(n)] instead

【讨论】:

    猜你喜欢
    • 2017-09-26
    • 1970-01-01
    • 2020-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    • 1970-01-01
    相关资源
    最近更新 更多