作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 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/
我是一名优秀的程序员,十分优秀!