这是一个动态环形拓扑项目。具体来说,我需要命名每个节点:s1,s2 ... sz,并命名每个主机h1-1,h1-2,... hz-n。所以z是节点的数量,n是连接到每个节点的主机的数量。所以我有一个节点列表,我试图使用该节点作为一个关键字来获得另一个主机列表,然后我可以将它们放在字典中以供使用。我怎样才能达到这个目标?这个例子图为如下:如何循环列表并将其附加到循环中的字典?
回答
我认为你正在寻找沿此线的东西:
# run with python dynamictopo.py z n
# e.g.: python dynamictopo.py 3 2
import sys
z = int(sys.argv[1]) # number of nodes
n = int(sys.argv[2]) # number of hosts
nodes = []
for i in range(0, z):
nodes.append("s" + str(i + 1))
print(nodes)
dct = {}
for j, node in enumerate(nodes):
hosts = []
for h in range(0, n):
hosts.append("h" + nodes[j][1] + "-" + str(h + 1))
dct[node] = hosts
print(dct)
这将打印[ 'S1', 'S2',“S3 ']和{'s2':['h2-1','h2-2'],'s3':['h3-1','h3-2'],'s1':['h1-1' ,'h1-2']}如果你使用3和2作为命令行参数。请注意0是无序的。
或者使用:
# run with python dynamictopo.py z n
# e.g.: python dynamictopo.py 3 2
import sys
z = int(sys.argv[1]) # number of nodes
n = int(sys.argv[2]) # number of hosts
dct = {}
for i in range(z):
hosts = []
for h in range(0, n):
hosts.append("h" + str(i + 1) + "-" + str(h + 1))
dct["s" + str(i + 1)] = hosts
print(dct)
非常感谢你的帮助! – angelionmaker
没问题。因为您在这里是新的:您可能想选择我的答案而不是评论。 –
只是跟进,我遇到了一个语法错误,如下...你知道原因吗? dct = {} ^ SyntaxError:无效的语法 – angelionmaker
- 1. 如何将dict附加到循环中的列表
- 2. 将值附加到for循环中的字典
- 3. 将字母附加到while循环中的列表
- 4. Python:如何创建for循环更改字典值并将其附加到列表?
- 5. 循环过滤列表并将元素附加到数组
- 6. 将字典追加到循环中的另一个字典
- 7. 如何将变量添加到带有循环的字典中?
- 8. 将文件列表循环到字典中;基于字符串
- 9. 将用户输入附加到循环中的列表
- 10. 作为循环的一部分将行附加到列表中
- 11. 我如何通过字典的列表循环,并在Ansible
- 12. 将for循环的结果添加到字典中,然后追加到列表
- 13. 如何在循环中将字典项添加到jsonarray?
- 14. 循环词典列表
- 15. 追加到循环列表
- 16. 创建div并将div添加到for循环中for循环
- 17. 循环在字典
- 18. VB.net字典循环
- 19. 将FOR附加到STR for循环内
- 20. 将列添加到mySQL表与循环
- 21. 从循环中提取值并将其添加到图表
- 22. Python:增加循环中的字典值
- 23. 将rnorm添加到循环中的列
- 24. Python:运行for循环时,如何将每个解决方案附加到列表中,该列表将附加到新的字典中?
- 25. 循环阵列,并获得每4项李,并将其添加到UI列表
- 26. 将数据附加到组件,并从对象列表中循环
- 27. 在字典中循环python
- 28. 在字典中循环
- 29. 在字典中循环python
- 30. TypeScript,在字典中循环
你尝试过什么做的?显示你的代码,并解释你在哪里与之挣扎。 (你为什么要放一个“node.js”标签?) – UnholySheep
我正在尝试构建动态Mininet拓扑。所以我发布了下面的代码。 – angelionmaker
我的代码太长了...我会尝试从下面的解决方案第一...谢谢... – angelionmaker