python - 在 Python 中设置嵌套数组值时,数组中的所有值都成为最后一个
问题描述
在第 7 行和第 8 行,我试图根据输入数组设置一组对象值,但所有对象的属性都设置为 10 - 循环最后一次迭代中的值。如果有人可以解释为什么这不起作用,我会如何期望它会是惊人的。
我目前正在学习python,所以我不知道是否有更简单的方法可以做到这一点。
class Network:
def __init__(self, input_data, layers, nodes, output_length):
self.layer = [Layer(len(input_data))]
self.layer += [Layer(nodes)] * layers
self.layer += [Layer(output_length)]
self.input = input_data
for __i in range(len(self.input)):
self.layer[0].nodes[__i].value = self.input[__i]
for self.i in range(1, self.layer.__len__()):
for self.j in range(0, self.layer[self.i].nodes.__len__()):
self.layer[self.i].nodes[self.j].connection = [None] * self.layer[self.i - 1].nodes.__len__()
def compute(self):
for self.i in range(1, len(self.layer)):
for self.j in range(0, len(self.layer[self.i].nodes)):
for self.k in range(0, len(self.layer[self.i].nodes[self.j].connection)):
self.layer[self.i].nodes[self.k].value += self.layer[self.i-1].nodes[self.k] * self.layer[self.i].nodes[self.j].value[self.k]
class Layer:
def __init__(self, nodes):
self.nodes = [NodeObject()] * nodes
class NodeObject:
def __init__(self):
self.value = 0
self.connection = [None]
def set_value(self, value):
self.value = value
i = Network([1,2,3,4,5,6,7,8,9,10], 2, 16, 10)
print(i.layer[0].nodes[2].value)
在此先感谢,
马特
解决方案
推荐阅读
- python - 有没有办法以 JSON 值传递 Python 命令行
- python - 为什么我的显示器在等待输入时没有响应?
- java - 如何在一台连接到不同计算机/网络 IP 地址的计算机上创建服务器套接字?(编码新手)
- javascript - 在 ul 中追加后获取 li 元素
- azure - 如何在 Databricks 的文件夹中运行所有以前的笔记本?
- r - 在 R 中,如何使用变量选择数据框中的列?
- swift - 变量在 Swift 中没有得到更新
- c++ - 引用调用、重载运算符、内联和常量
- jenkins - Jenkins Terraform 应用
- angular - Angular:如何在路由上声明条件组件