IssueĐối với loop được ghi đè lên các giá trị trong danh sách từ điển
Tôi đã thực hiện một vòng lặp for đọc nội dung của một danh sách tuy nhiên khi gán hai giá trị để một cuốn từ điển và sau đó gắn thêm rằng đầu ra vào một danh sách, tiếp theo giá trị ghi đè tất cả mọi thứ trong danh sách
mong muốn kết quả
tôi muốn thêm nhiều từ điển vào một danh sách như vậy khi tôi chạy một vòng lặp for và in tất cả mọi thứ liên quan đến 'ip' nó sẽ in tất cả các giá trị liên quan đến từ điển giá trị 'ip'.
Mã
device = { 'ip': '', 'mac': '', 'username': 'admin', 'password': [], 'device type': '', }
listofdevices = []
def begin():
file = open("outputfromterminal")
contents = file.read()
contents = contents.split(',')[1:]
for x in contents:
# do some text stripping
x = x.split(' ')
device['ip']=x[0]
device['mac']=x[1]
listofdevices.append(device)
Mẫu mã
chỉ số 1 của nội dung là:
x[0] = '10.10.10.1'
x[1] = 'aa:bb:cc:dd'
Chỉ số thứ 2 của nội dung là:
x[0] = '20.20.20.1'
x[1] = 'qq:ww:ee:ee:rr'
Điều gì thực sự xảy ra
listofdevices[0] 'ip': 20.20.20.1, 'mac': 'qq:ww:ee:ee:rr'
listofdevices[1] 'ip': 20.20.20.1, 'mac': 'qq:ww:ee:ee:rr'
Nó không liên quan gì đến bản thân vòng lặp 'for': danh sách chứa hai tham chiếu đến từ điển * cùng *. –
Vì vậy, bạn đang nói rằng tôi sẽ phải sử dụng một số chỉ mục để tạo một từ điển mới và nối thêm các giá trị vào số chỉ mục liên quan đến từ điển? –
không, nó không liên quan gì đến việc sử dụng các chỉ mục, bạn phải xây dựng một từ điển * mới * mỗi lần. –