這是一個動態環形拓撲項目。具體來說,我需要命名每個節點: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