Python 一个'for'循环,多个字典追加


com = self.get_scan_companies()
for name in com:
k.append({'org_id' : None, 'keyword' : name['names']})
for domain in com:
k.append({'org_id' : None, 'keyword' : domain['domains']})
for ip in com:
k.append({'org_id' : None, 'keyword' : ip['Ips']})

com生成{id,'names','domains','Ips'}的字典注:com有4项,但我只需要最后3项。

我想将代码增强为一个for循环,其中包含如上所述的3行追加内容:
for name,domain,ip in com:
k.append({'org_id' : None, 'keyword' : name['names']})
k.append({'org_id' : None, 'keyword' : domain['domains']})
k.append({'org_id' : None, 'keyword' : ip['Ips']})

期望结果是一个列表:

k=[{'org_id' : None, 'keyword' : name['names']}, {'org_id' : None, 'keyword' : domain['domains']},{'org_id' : None, 'keyword' : ip['Ips']}]

我明白上面没有产生结果!提前感谢您的帮助!

三个for循环都在同一数据上迭代。调用迭代器的name、domain或ip没有区别。这相当于以下使用iter_作为泛型迭代器的单个for循环:

com = self.get_scan_companies()
for iter_ in com:
k.append({'org_id' : None, 'keyword' : iter_['names']})
k.append({'org_id' : None, 'keyword' : iter_['domains']})
k.append({'org_id' : None, 'keyword' : iter_['Ips']})

最新更新