두 개의 사전이 있습니다. DictB의 값으로 DictA의 키를 반복 할 수 있습니까? DictB의 값이 일치하면 DictB의 키를 반환합니다.
할 수 있습니까?
제게 조언이나 조언을주세요. 내가 도대체 뭘 잘못하고있는 겁니까? 고맙습니다.
예 :
파이썬을 사용하는 다른 사전의 키와 1 사전의 일치 값
A: {'WNT3A': '1732', 'RG59L': ' ', 'SCZD9': ' ', 'CD241': '6005', 'C2': '', 'RH': ' '}
B: {'': [''], '6005': ['RH50A', ' CD241', ' SLC42A1'], '603': [''], '6000': [''], '8787': ['PERRS', ' RGS9L', ' MGC26458'], '41': ['ACCN2', ' BNaC2', ' hBNaC2'], '8490': [''], '9628': [''], '5999': ['SCZD9']}
결과 :
new_A: {'WNT3A': '1732', 'RG59L': ' ', 'SCZD9': '5999 ', 'CD241': '6005', 'C2': '', 'RH': ' '}
지금까지,이 코딩했지만 단지 나에게 또는 사전은 사전에 B를 포함하는 전체가 사전을 반환하는 것
new_a = {}
for key in ref_dict:
for value in (map(lambda x: x.strip(), ref_dict[key][0])):
if(not fill_dict.has_key(key)):
continue
elif(ref_dict[value] != fill_dict[key]):
new_a[value] = (ref_dict[key], fill_dict[key])
print new_a
결과 :,453,210
{'WNT3A': '1732', 'RG59L': '', 'SCZD9': '', 'CD241': '6005', 'C2': '', 'RH': ''}
내가 해봤 또 다른 코드는 다음과 같습니다
new_dict = {}
for k, v in fill_dict.iteritems():
vals = []
if isinstance(v, list):
for i in v:
vals.append(ref_dict.get(i))
else:
vals.append(ref_dict.get(v))
if not vals:
continue
new_dict[k] = vals
print new_dict
결과 : 당신은 이것에 대한 next()
와 DICT-이해를 사용할 수 있습니다
{'WNT3A': [None], 'RG59L': [['']], 'SCZD9': [['']], 'CD241': [['RH50A', ' CD241', ' SLC42A1']], 'C2': [['']], 'RH': [['']]}
사전 A의 값을 변경 하시겠습니까? 아니면 전혀 새로운 독창적 인 사전을 반환 하시겠습니까? – dursk