在 python 中计数的更好的循环结构

better loop structure for counting in python

以下代码尝试计算某个子图结构有多少条外边。 substructure 是节点列表,graph[node] returns 是 node 的邻居节点列表。

external_edge = 0
for node in substructure:
    for neighbor in graph[node]:
        if neighbor not in substructure:
            external_edge += 1

有没有更好的方法来实现这个?我尝试了列表理解,但 external_edge+=1 不是表达式。

嗯..它不是更高效但可能更像 pythonic(使用带有 sum 函数的列表推导)。

external_age = sum(1 for node in substructure for neighbor in graph[node] if neighbor not in substructure)

因为你只需要外边的数量

len(node for node in substructure for neighbor in graph[node] if neighbor not in substructure)