遍历Network对象中的Node列表遇TypeError,如何正确访问Node属性?
解决遍历节点列表时的TypeError错误
错误原因
你编写的循环代码中,for i in network1.green_network里的i是列表中的Node实例对象,而非整数索引。此时用network1.green_network[i]尝试取列表元素,相当于把Node对象当作索引传入,违反了列表索引必须是整数或切片的规则,因此触发TypeError。
正确实现方式
有两种常用的正确写法:
方式一:直接遍历节点对象(推荐)
循环变量直接接收列表中的Node实例,直接访问其属性:
for node in network1.green_network: print(node.ID)
方式二:通过索引遍历(需用到索引时使用)
如果需要同时获取节点的索引和对象,可以用enumerate;或者直接遍历索引范围:
# 使用enumerate同时获取索引和节点 for idx, node in enumerate(network1.green_network): print(f"索引{idx}对应的节点ID:{node.ID}") # 仅遍历索引的写法 for i in range(len(network1.green_network)): print(network1.green_network[i].ID)
内容的提问来源于stack exchange,提问作者The Pointer
相关产品推荐
相关产品推荐

