django項(xiàng)目中遇到bug后众,總是遇到同一域名出現(xiàn)多個(gè)同一ip(域名和ip之間是多對(duì)多映射),后面檢索到的域名覆蓋前面域名,舉例如下:
>>> listcontaindict=[{1:"a",2:"b"},{2:"b",3:"c"},{1:"a",3:"c"},{4:"d"}]
>>> tarlist=list()
>>> for line in listcontaindict:
... if line.get(4) == "d":
... line[5]="e"
... tarlist.append(line)
...
>>> tarlist
[{4: 'd', 5: 'e'}]
>>> for line in listcontaindict:
... if line.get(4) == "d":
... line[5]="f"
... tarlist.append(line)
...
>>> tarlist
[{4: 'd', 5: 'f'}, {4: 'd', 5: 'f'}]
問(wèn)題原因:引用列表中字典的同一塊內(nèi)存地址引起
解決方案:
>>> tarlist=list()
>>> listcontaindict=[{1:"a",2:"b"},{2:"b",3:"c"},{1:"a",3:"c"},{4:"d"}]
>>> for line in listcontaindict:
... if line.get(4) == "d":
... lined=line.copy()
... lined[5]="e"
... tarlist.append(lined)
...
>>> for line in listcontaindict:
... if line.get(4) == "d":
... lined=line.copy()
... lined[5]="f"
... tarlist.append(lined)
...
>>> tarlist
[{4: 'd', 5: 'e'}, {4: 'd', 5: 'f'}]