【问题标题】:Using cities of the same name as nodes (NetworkX)使用同名城市作为节点(NetworkX)
【发布时间】:2026-02-03 18:25:01
【问题描述】:

我最近遇到了 NetworkX 的问题。我正在尝试从文件中构建城市图。一些城市名称相同,但位于不同的州。因此,当我尝试调用不同的方法时,我正在失去城市。我知道如果我知道我想要它多少次,我可以将一个元素多次附加到列表中。有没有一种方法可以将多个元素附加到列表中而实际上不知道它会附加的次数???

【问题讨论】:

  • 你试过什么?你能给出一些示例代码吗?看minimal reproducible example
  • 参考How To Ask On Stack-overflow 并参观一下
  • network 图中的节点标签是不同的。您不能复制标签。将状态作为标签的一部分包含在内或寻找其他方法。
  • @aryamccarthy,谢谢。这就是我需要知道的。对不起大家,我觉得这是一个直截了当的问题,雅利安回答了。
  • 这个问题不需要比提供的信息更多的信息——从上面很清楚问题是什么。

标签: list python-3.x networkx


【解决方案1】:

基本上我把东西包装在一个类中来处理这个问题:

class CityNode:
    group_count = 0
    def __init__(self, city_name):
        self.city_name = city_name
        self.group_number = copy.deepcopy(CityName.group_count)
        CityNode.group_count += 1
    def __str__(self):
        return "{}({})".format(self.city_name, self.group_number)
    def __repr__(self):
        return "CityNode({})".format(self.city_name)

我知道这并不理想,但这是我在一些项目中所做的。这样,在图表中存储时,您可以获得具有相同名称的城市的不同节点。

或者创建一个CityNode,将状态作为参数存储在 Networkx 节点中。

【讨论】: