我正在尝试使用键来处理字典,并且每个键都具有值列表,并从中创建一个嵌套的字典。并且还要比较每个键列表中的相等值,并使用相等和不相等的值列表生成一个新字典。
我能够遍历每个键的值列表并对其进行处理,以获取一个新的变量,以便使用该变量创建新的嵌套字典。但是目前,第一个键值引发了null异常。
dict1 = {a:[d,e,f], b:[p,q,r]}
dict2 = {d:100, e:100, f:100, p:100, q:100, r:100}
dict3 = {d:text1, e: text2, f: text3}
for i in dict1.keys():
for x in dict1[i]:
if dict2[x] == 100:
string = re.findall(r'sometext in text',dict3[x])[0]
ver = re.search('(?is)<i>(.+?)</i>', match_string).group(1)
d[i][x] = ver
预期结果:
d = { a:{d:ver1, e:ver2, f:ver3}, b:{p:ver4, q:ver5, r:ver6 }
在遍历每个嵌套值之后,需要将每个值与其对等值进行比较,并使用匹配的值的键将其排列在新字典中。如下所示:
if d's ver1 = e's ver2 =! f's ver3
dict4 = {a: { equal:[d,e], unequal: [f]}
答案 0 :(得分:1)
我不知道dict3
在您所需的输出中起什么作用,但这将获得所需的输出:
dict1 = {'a':['d','e','f'], 'b':['p','q','r']}
dict2 = {'d':100, 'e':100, 'f':100, 'p':100, 'q':100, 'r':100}
result = {key1: {key2: dict2[key2] for key2 in val1} for key1, val1 in dict1.items()}
print(result)
输出:
{
"a": {
"d": 100,
"e": 100,
"f": 100
},
"b": {
"p": 100,
"q": 100,
"r": 100
}
}