對不起,如果問題似乎與以前的問題類似,但我找不到任何相關的答案,我的確切問題。如何在python字典中獲取唯一鍵和唯一值列表?
我在一個目錄中有一組文本文件,我想將它們全部讀取並解析它們。該文件的格式是這樣的(這意味着該文件有一個域重複的IP和一個IP重複域,而且還反覆對域| IP):
file 1: domain|ip
yahoo.com|9.9.9.9
mard.man.net|23.34.5.1
bbc.net|86.45.76.5
file 2:
google.com|9.9.9.9
yahoo.com|9.9.9.9
yahoo.com|23.34.5.1
什麼,我要的是一個字典,顯示獨特的ips及其相關的唯一域名,如下所示:
9.9.9.9,2
23.34.5.1,2
86.45.76.5,1
這是我爲它編寫的腳本。
d = defaultdict(set)
for dirpath, dirs, files in os.walk(path):
for filename in fnmatch.filter(files, '*.*'):
with open(os.path.join(dirpath, filename)) as f:
for line in f:
if line.startswith('.'):
domain = line.split('|')[0]
ip = line.split('|')[1].strip('\n')
d[ip].add(domain)
但問題是,因爲腳本是在幾個文本文件運行時,如果一個IP(鍵)已經被寫入一次從一個文本文件中的字典(d),然後在另一個文本再次出現文件,該字典將與新的價值類似的事情再次把它寫:
9.9.9.9,1
23.34.5.1,1
86.45.76.5,1
9.9.9.9,2
23.34.5.1,2
謝謝@haraprasadj。但通過這種方式,這些域名將不再是唯一的。所以確實獨特的ips問題將得到解決,但我也計算同一個域的ips數量,這是我想避免的。我只需要列出ips和他們關聯的唯一域的數量。你有什麼進一步的建議嗎? – UserYmY 2014-10-20 09:59:07
忘記了這個要求,現在增加了一張支票 – haraprasadj 2014-10-20 10:07:29
這就回答了我的問題。謝謝 – UserYmY 2014-10-20 10:50:36