gpt4 book ai didi

python - 段错误 : 11 from iterating a linked list in python

转载 作者:行者123 更新时间:2023-11-28 21:57:46 25 4
gpt4 key购买 nike

我是 Python 的新程序员,在遍历链表时遇到问题。这是一个链接列表,作为我正在使用的其他一些软件(我无法修改)的输出提供给我,并且包含我需要访问的参数(这里只是称为 my_parameter 以供引用)。为了便于引用,我将链表命名为 sim_table。我用来尝试迭代的代码片段是:

sim_table_rows = []
def iterate_linked_list(node):
while node is not None:
sim_table_rows.append(node.my_parameter)
node = node.next

iterate_linked_list(sim_table)

这在 ipython 中运行良好,这是我测试所有内容的地方,但是当我尝试在 ipython 之外运行脚本时,我不断遇到段错误:11。为了诊断问题,我尝试打印输出而不是附加它:

def iterate_linked_list(node):
while node is not None:
print node.my_parameter
node = node.next

iterate_linked_list(sim_table)

我得到的输出是列表中最后一个节点的 my_parameter 的无限循环,但我不确定为什么。我还制作了一个只有两个节点的测试 sim_table,看看如果我尝试迭代到 ipython 中不存在的节点会发生什么:

In [10]: test_sim_table.next.next.my_parameter
AttributeError: 'NoneType' object has no attribute 'my_parameter'

所以我得到了一个属性错误而不是 None,这正是我所期望的。我错过了一些简单的东西吗?我对这一切都很陌生,所以可能。感谢您提供的所有帮助!

最佳答案

没有你在链表中前进的地方,也许你想要:

sim_table_rows = []
def iterate_linked_list(node):
while node is not None:
sim_table_rows.append(node.my_parameter)
node = node.NEXT_NODE # Change node to next one...

假设 NEXT_NODE 是包含对下一个节点的引用的属性。

关于python - 段错误 : 11 from iterating a linked list in python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19416008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com