나는 하나의 다른 사전과 비교해야하는 미리 설정된 양의 목록이 있습니다.사전 목록을 다른 사전과 결합
list1 = [
{'X1': 'Q587', 'X2': 'Q67G7', ...},
{'AB1': 'P5K7', 'CB2': 'P678', ...},
{'B1': 'P6H78', 'C2': 'BAA5', ...}]
dict1 = {
'X1': set([B00001,B00020,B00010]),
'AB1': set([B00001,B00007,B00003]),
'C2': set([B00001,B00002,B00003]), ...
}
은 내가 지금 갖고 싶어하는 키로 가진 새 사전입니다 :
그들은 (키와 값에 대한 구체적인 형태 나 패턴이 무작위로 선택되는 예는 없다) 다음과 같은 형태를 따른다 : list1에있는 사전의 값. dict1의 값을 값으로 사용합니다. 그리고 이것은 비교 된 사전에서 키가 교차 할 때에 만 가능합니다.
nDicts = len(list1)
resultDict = {}
for key in range(0,nDicts):
for x in list1[key].keys():
if x in dict1.keys():
resultDict.update{list1[key][x]:dict1[x]}
print resultDict
이 원하는 출력 형식이어야합니다 :
나는 다음과 같은 방법으로이 작업을 수행 한
resulDict = {
'Q587': set([B00001,B00020,B00010]),
'P5K7': set([B00001,B00007,B00003]),
'BAA5': set([B00001,B00002,B00003]), ...
}
이 작동하지만 데이터의 양 때문에이 영원히 소요 너무 높다 . 더 좋은 방법이 있나요?
EDIT : 입력 값을 조금 변경했는데, 중요한 것은 list1 내의 사전과 dict1 내의 사전 사이에 교차하는 키뿐입니다.
어느 것이 더 큽니까? 'list1' 또는'dict1'? – Hyperboreus
'list1'에서 하나 이상의 사전에 나타나는 키가 있습니까? – Hyperboreus
실제 샘플 데이터 (구문 오류가 아닌 평가되고 사용될 수 있음)와 원하는 출력을 표시 할 수 있습니까? – abarnert