2017-01-14 2 views
-4

동적 링 토폴로지 프로젝트 용입니다. 특히 각 노드의 이름을 s1, s2 ... sz로하고 각 호스트의 이름을 h1-1, h1-2, ... hz-n으로 지정해야합니다. 그래서 z는 노드의 수이고, n은 각 노드에 연결된 호스트의 수입니다. 그래서 노드 목록을 가지고 있는데, 노드를 키 목록으로 사용하여 다른 호스트 목록을 작성하려고합니다. 그런 다음이를 사전에 넣어 사용할 수 있습니다. 어떻게이 목표를 달성 할 수 있습니까? 예 그래프는 다음과 같습니다 :목록을 반복하여 루프에 사전에 추가하는 방법은 무엇입니까?

+3

? 코드를 보여주고 정확히 어디에 고민하고 있는지 설명하십시오. (왜 "node.js"태그를 넣었습니까?) – UnholySheep

+0

동적 미니 토폴로지를 작성하려고합니다. 그래서 아래 코드를 게시했습니다. – angelionmaker

+0

내 코드가 너무 깁니다 ... 먼저 아래에서 해결책을 시도합니다 ... 감사 ... – angelionmaker

답변

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 

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) 
+0

도움을 주셔서 대단히 감사합니다! – angelionmaker

+0

문제는 없습니다. 당신이 여기에 새로 온 것처럼 : 당신은 코멘트 대신 내 대답을 선택하고 싶을 것입니다. –

+0

후속 조치로 아래 문법 오류가 발생했습니다 ... 이유를 알고 있습니까? dct = {} ^ 구문 오류 : 잘못된 구문 – angelionmaker

관련 문제