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

时间:2017-02-16 15:11:10

标签: python for-loop counting

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

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

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

2 个答案:

答案 0 :(得分:0)

嗯..它不是更有效但可能更加pythonic(使用带有sum函数的列表理解)。

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

答案 1 :(得分:0)

因为你只需要外边数

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