【问题标题】:Python matrix: instead of updating an element it updates all rows [duplicate]Python矩阵:它不是更新元素而是更新所有行[重复]
【发布时间】:2016-04-02 17:16:27
【问题描述】:
c_k_list = [[0, 0]]*(sorted_degrees[len(sorted_degrees)-1]+1)

c_k_list[entry[1]][0] = c_k_list[entry[1]][0]+1

在哪里entry[1]=1

在上面的语句中,不是将c_k_list 中的特定元素加1,而是将1 添加到所有行。 例如: c_k_list

[[1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0], [1, 0]]

而不是

[[0,0], [1,0], [0,0]......[0,0]]

【问题讨论】:

    标签: python list python-2.7 matrix


    【解决方案1】:

    列表是对象,因此通过引用存储。使用 * 只会创建该引用的副本。要更正此尝试:

    c_k_list = [[0, 0] for i in range(5)] 
    c_k_list[1][0] = c_k_list[1][0]+1
    

    【讨论】:

      猜你喜欢
      • 2020-02-05
      • 1970-01-01
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多