【发布时间】:2016-09-21 23:02:03
【问题描述】:
我有一个由节点和边组成的有向图结构,它们都是 Event 父类的子类。根据外部事件,边缘可以是活动的或非活动的。然后我找到从给定节点到根节点的所有有向路径,但我真的只关心沿途的节点,而不是边缘。例如,要将一组边转换为我使用的一组节点:
>>> paths
[[<Edge F>, <Edge B>]]
>>> lst = [set(map(lambda e: e.tail, path)) for path in paths]
其中 path 是边的列表。这让我感到困惑:当我去检查lst 的内容时,它会根据我访问它的方式而改变
>>> lst
[set([<Node 2>, <Node 1>])]
>>> [type(n) for n in path for path in lst]
[<class 'libs.network.Edge'>, <class 'libs.network.Edge'>]
>>> [type(n) for n in lst[0]]
[<class 'libs.network.Node'>, <class 'libs.network.Node'>]
为什么这两种访问类型信息的方式不一样?
【问题讨论】:
-
您访问的不是同一个东西,而是访问不同的东西。
标签: python types list-comprehension