问题描述
我正在尝试阅读列表并获取键和值对
from itertools import groupby
a=['x.site1.ca.zilla.wipro.com','y.site2.ca.zilla.wipro.com','z.site1.co.zilla.wipro.com']
d={}
z=[]
for x in (a):
l=x.split(".")
if(d[l[2]] in d):
d[l[2]].append(l[1])
else:
d[l[2]] = []
我收到密钥错误?为什么错了?
预期输出:
{ca:[site1,site2],co:[site1]}
解决方法
编辑:您收到KeyError,因为在第一次迭代中,值l[2]
不在字典d
中-因此d[l[2]]
引发异常。
a=['x.site1.ca.zilla.wipro.com','y.site2.ca.zilla.wipro.com','z.site1.co.zilla.wipro.com']
out = {}
for x in a:
x = x.split('.')
out.setdefault(x[2],[]).append(x[1])
print(out)
打印:
{'ca': ['site1','site2'],'co': ['site1']}