我在Python中的图收缩算法的行为很奇怪

2024-05-23 13:37:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经为这个问题写了一些代码。(Python27)

图形表示为字典,其中包含冻结集键和冻结集集:

sample_graph = {frozenset([7]): set([frozenset([4]), frozenset([5]), frozenset([3])]), frozenset([5]): set([frozenset([7]), frozenset([2]), frozenset([1])]), frozenset([3]): set([frozenset([7]), frozenset([4]), frozenset([2]), frozenset([1])]), frozenset([6]): set([frozenset([4]), frozenset([2]), frozenset([1])]), frozenset([4]): set([frozenset([6]), frozenset([7]), frozenset([3]), frozenset([1])]), frozenset([1]): set([frozenset([6]), frozenset([4]), frozenset([5]), frozenset([2]), frozenset([3])]), frozenset([2]): set([frozenset([6]), frozenset([5]), frozenset([3]), frozenset([1])])}

图中的所有结点都应该是两个结点的集合。此时它会遇到keyror。在

^{pr2}$

Tags: sample代码图形字典graphpython27setfrozenset
1条回答
网友
1楼 · 发布于 2024-05-23 13:37:18

我认为问题可能在于is关键字的使用。请注意,在Python中,^ {< CD1}}只有当两个参数引用C++中的“e>精确e> eEM>相同对象(等于C++中的{{CD3}})时才返回true。如果内容是相同的,则{{CD4}}操作符返回true(相当于C++中的{{CD5}})。在

因此,与其is not,不如试试!=。在

我曾经在python中遍历图中的元素时遇到过同样的问题。:)

另外,我会将以下行写成完整的if

links.add(frozenset(tuple(u | v))) if u in links or v in links else None

相关问题 更多 >