如何循环列表并将其附加到循环中的字典?
How to loop a list and append it to a dictionary in a loop?
这是一个动态环形拓扑项目。具体来说,我需要将每个节点命名为: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 作为命令行参数。请注意 dictionaries 是无序的。
或者使用这个:
# 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)
这是一个动态环形拓扑项目。具体来说,我需要将每个节点命名为: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 作为命令行参数。请注意 dictionaries 是无序的。
或者使用这个:
# 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)