dict1 = {
"domain1": ["53/tcp,open,domain", "80/tcp,open,http"],
"domain2": ["22/tcp,open,ssh", "25/tcp,open,smtp", "80/tcp,open,http",
"443/tcp,open,https"],
"domain3":["22/tcp,open,ssh"]}
我想将 dict2
与 dict1
进行比较,并检查是否存在新的键或值(打开的端口列表),如果是,则更新dict1
dict2 = {
"domain3":["22/tcp,open,ssh","443/tcp,open,https"],
"domain4":["80/tcp,open,http", "443/tcp,open,https"],
"domain5":["80/tcp,open,http", "443/tcp,open,https"]}
我完成了任务的第一部分,即通过将dict2
与dict1
键进行比较并查找{{1}中是否有任何新键来找到任何新键。 }并更新dict2
。
dict1
以下是输出:
new_item = {}
for i in dict2.keys():
if i not in dict1.keys():
new_item[i] = dict2[i]
dict1[i] = dict2[i]
print("NEW DOMAINS FOUND : ",new_item)
print(dict1) ## UPDATED with New Domains Found
我需要帮助解决任务的第二部分,即比较dict2和dict1的值,如果NEW DOMAINS FOUND : {
'domain4': ['80/tcp,open,http', '443/tcp,open,https'],
'domain5': ['80/tcp,open,http', '443/tcp,open,https']}
{'domain1': ['53/tcp,open,domain', '80/tcp,open,http'],
'domain2': ['22/tcp,open,ssh', '25/tcp,open,smtp', '80/tcp,open,http',
'443/tcp,open,https'],
'domain3': ['22/tcp,open,ssh'],
'domain4': ['80/tcp,open,http', '443/tcp,open,https'],
'domain5': ['80/tcp,open,http', '443/tcp,open,https']}
中有任何新值,则用这些值更新dict1。
如果您查看dict2
和dict2[domain3]
,则dict1[domain3]
中有一个新值,现在dict2[domain3]
应该用这些新值进行更新。
在比较dict1[domain3]
和dict2
并更新值/键时需要的输出:
dict1
dict1
如果您需要更多信息或有疑问,请留下评论,我将更新问题。
答案 0 :(得分:2)
如果列表内元素的顺序并不重要,则可以使用以下内容:
dict3 = {}
for k, v in dict2.items():
dict3[k] = list(set(dict1.get(k, []) + v))
结果dict3
:
{'domain3': ['443/tcp,open,https', '22/tcp,open,ssh'],
'domain5': ['80/tcp,open,http', '443/tcp,open,https'],
'domain4': ['80/tcp,open,http', '443/tcp,open,https']}