python - 这段代码有Python函数吗?

标签 python graph

我通过将节点放入列表中来创建图表。 Node 是一个具有属性“parent”、“daughters”和“edge”的类。我想检查一个符号是否在当前节点的任何子节点的边缘,如果是,则将当前节点更改为该节点。如果不是,则我使用该边创建一个新节点,并将当前节点更改为它。

我是这样做的:

match = False
for daughter in currentNode.daughters:
    if daughter.edge == currentSymbol:
        match = True
        currentNode = daughter
if match == False:
    trie.append(node(currentNode, [], currentSymbol)
    currentNode = trie[-1]

“匹配”的使用对我来说似乎不够优雅。是否有更好的语法来检查女儿之间是否存在边缘,如果存在,则将当前节点更新为该女儿,如果不存在,则创建该节点?

最佳答案

您可以使用 for/else这里:

for daughter in currentNode.daughters:
    if daughter.edge == currentSymbol:
        currentNode = daughter
        break
else:
    trie.append(node(currentNode, [], currentSymbol)
    currentNode = trie[-1]

如果 for 循环正常退出,即没有 break

,则 else 将被执行

关于python - 这段代码有Python函数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31479915/

相关文章:

python - 捕获所有出现的模式,直到 Python 中某个单词第一次出现

python - 如果有多个条件无法弄清楚

Python NetworkX - 为什么图形总是随机旋转?

ios - 核心图 - 带平均水平线的条形图

python - 查找、解码并替换文本文件中的所有 Base64 值

python - 重定向到登录页面而不是在未登录时显示禁止消息

javascript - 使用代码 : Rendering a graph of connected nodes in JS or PHP 绘图

c - 如何针对 2 个节点之间的单个最短路径优化 Dijkstra 算法?

python - 处理由 sympy integrate 返回的分段方程

algorithm - 使用贪心算法访问 DAG 中的所有节点