首页 > 解决方案 > 是否有可能拥有一个带有分配给它的值列表的属性?

问题描述

我想为 NetworkX 中的单个属性分配多个值,但我能找到的每个示例似乎都表明单个属性只能有一个与之关联的值。

假设我有一个名为 N1 的节点,具有以下属性:

modifications_flags

total

属性modification_flags,我想是一个数字列表。

例如

modification_flags: 1,2,7,5

我想这样做的原因是,modifications_flags 的值是由如何从图中删除边来设置的。

当移除先前连接 N1 到 N2 的边时,根据最初链接到两个节点的边所拥有的属性,将 modify_flag 值分配给每个节点。

一个节点可能有多个边,如果删除了每条边,则需要将修改值传递给节点。

我目前正在尝试通过将 modify_flags 设为字符串数据类型,然后将数值修改标志值转换为字符串,然后将其添加到 modify_flags 字符串的末尾。

例如

modification_flags = '1'

modification value to be added (mod_value) = 4

modification_flags = modification_flag + str(mod_value)

modification_flags = '14'

然后我遍历字符串,就好像它是一个列表一样。虽然这适用于我的用例,但如果属性 modify_flags 可以是值列表会更好。

例如

modification_flags = [1,4]

这可能吗?有人可以请我指向文档/向我提供如何完成此操作的示例吗?

注意:我不是试图从列表或字典中获取属性值,而是让一个属性成为列表

标签: pythonnetworkx

解决方案


是的

import networkx as nx
G=nx.Graph()
G.add_node(1, attributelist = [])
G.add_node(2, attributelist = [ 'a', 'b', 6])
G.nodes(data=True)
> NodeDataView({1: {'attributelist': []}, 2: {'attributelist': ['a', 'b', 6]}})

推荐阅读