python - 在 python 中获取列表

标签 python list edges

#ideal nodes list should be
['A','B','C','D','E','F','G','H','I','J','K','L','M','N']

所以我尝试编写一个定义来读取节点和边。这是我的代码,但它似乎不起作用。

""" read nodes"""
def rd_nodes(a):
    nline =[line.split(":")[1].replace(';',',').split(',') for line in a]
    for i in nline:
        return i

最佳答案

itertools.combinations可以在这里为您提供帮助。

试试这个:

from itertools import combinations

s = """
1:A,B,C,D;E,F
2:G,H;J,K
&:L,M,N
"""

nodes = set()
edges = set()

for line in s.split():
    clusters = line.split(':')[1].split(';')
    for cluster in clusters:
        _nodes = cluster.split(',')
        nodes.update(_nodes)
        edges.update(combinations(_nodes, 2))

您可以使用collections.OrderedDict如果需要,可以使用节点的结构来维持顺序。只需使用节点和边作为字典键,然后在脚本末尾获取键列表。

关于python - 在 python 中获取列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39796301/

相关文章:

python - 如何使用 Pscycopg2 将字典插入 Postgresql 表

python - 将统一字符串转换为字典

graphviz:颜色方面的边方向

python - 在 Seaborn 中禁用色调嵌套

python - 私有(private) S3 存储桶的预签名 URL 显示 AWS 访问 key ID 和存储桶名称。这是一个安全问题吗?

java - jackson xml 列出被识别为重复键的反序列化

Python:列表列表中的组合(?)

c++ - 当基类想要访问继承类的成员时

python - 在Python中比较一维和二维序列的有效方法

.net - 是否有 .net 框架方法可以根据集合中所有项目的属性生成集合?