2 回答

TA貢獻1848條經驗 獲得超2個贊
在字典中,鍵必須是唯一的,當你這樣做時:
mydict[name] = ip.strip()
通過執行以下操作,您可以覆蓋值,而不是為鍵提供單個值,您可以存儲值列表:
mydict = {}
with open('devices.txt', 'r') as file:
for line in file:
name, ip = line.split()
if name not in mydict:
mydict[name] = []
mydict[name].append(ip.strip())
print(mydict)
輸出
{'asy1': ['10.20.0.1'], 'byt': ['192.1.10.100', '192.1.10.101', '192.1.10.102'], 'hps': ['10.30.1.50', '10.30.1.53', '10.30.1.54', '10.30.1.55', '10.30.1.56'], 'zte': ['10.100.1.1', '10.100.1.2']}
第二種選擇是使用setdefault代替:
mydict.setdefault(name, []).append(ip.strip())
第三種選擇是使用defaultdict。如果值是唯一的,請考慮使用set。

TA貢獻1863條經驗 獲得超2個贊
其中許多名稱是相同的,但是 adict
對于給定的鍵只能有一個值 - 如果您嘗試使用 key 將 IP 添加到字典中hps
,但其中已經有一個,它將被覆蓋。也許使用 alist
代替?
添加回答
舉報