a = [{'a':{'a':1}}, {'b':{'b':1}}, {'c':{}}]
b = [{'a':{'a':1,'b':0}}, {'b':{'a':1}}]
여기에는 두 개의 목록이 있습니다. 그것은 또한 작동두 개의 사전 목록을 비교하고 파이썬의 모든 키와 값으로 새 목록을 만듭니다.
newlist = [{'a':{'a':1,'b':0}}, {'b':{'a':1,'b':1}}, {'c':{'a':0,'b':0}}]
a = [{'a':{'a':1}}, {'b':{'b':1}}, {'c':{}}]
b = [{'a':{'a':1,'b':0}}, {'b':{'a':1}}]
여기에는 두 개의 목록이 있습니다. 그것은 또한 작동두 개의 사전 목록을 비교하고 파이썬의 모든 키와 값으로 새 목록을 만듭니다.
newlist = [{'a':{'a':1,'b':0}}, {'b':{'a':1,'b':1}}, {'c':{'a':0,'b':0}}]
A_list = [{'a':{'A':1}}, {'b':{}}]
B_list = [{'b': {'B': 1}}, {'a': {'A': 0}}]
list_with_all_keys = [{'a':{}}, {'b':{}}, {'c':{}}]
new_lod = [{k:{'A':(1 if k in A_list and 'A' in A_list[k] and A_list[k]['A'] is 1 else 0),
'B':(1 if k in B_list and 'B' in B_list[k] and B_list[k]['B'] is 1 else 0)}}
for k in [list(n.keys())[0] for n in list_with_all_keys]]
new_lod
나는 일이 뭐죠 명확히하기 위해, 일부 대문자를 추가 한, [{'a': {'B': 0, 'A': 0}}, {'b': {'B': 0, 'A': 0}}, {'c': {'B': 0, 'A': 0}}]
주 다음이다 : 나는이를 비교하고이 같은 새 목록을 생성 할 A
/A_list
및 B
/B_list
대신 소문자 문자 a
및 b
만 사용하는 경우
(!) 참고
난 당신이 목록에서 사전의 첫 번째 레벨에서 중복 키를하지 않는 가정합니다. 필자는 이것이 올바른 가정이라고 생각합니다. 필요한 출력이 첫 번째 수준 사전에서이 중복 키를 접을 것이기 때문입니다. 따라서 목록을 건너 뛰고 사전 목록 대신 하나의 사전을 사용할 수 있습니다. 이것은 표현식을 약간 단순화합니다. 그러나 응용 프로그램에 따라 두 목록, 사전 또는 세트를 비교하거나 결합하는 방법이 더 쉬울 수도 있습니다.
A_dict = {'a':{'A':1}, 'b':{}}
B_dict = {'b': {'B': 1}, 'a': {'A': 0}}
dict_with_all_keys = {'a':{}, 'b':{}, 'c':{}}
# a dictionary solution with no list
new_dict = {k:{'A':(1 if k in A_dict and 'A' in A_dict[k] and A_dict[k]['A'] is 1 else 0),
'B':(1 if k in B_dict and 'B' in B_dict[k] and B_dict[k]['B'] is 1 else 0)}
for k in dict_with_all_keys}
이
a = [{'a':{'a':1}}, {'b':{'b':1}}, {'c':{}}]
b = [{'a':{'a':1,'b':0}}, {'b':{'a':1}}]
result = {}
for c in a + b:
for key,value in c.items():
result[key] = dict()
result[key]['a'] = value.get('a', 0)
result[key]['b'] = value.get('b', 0)
print(result)
당신에게 줄 것이다 될 일을 더 읽을 수있는 방법은
{'c': {'a': 0, 'b': 0}, 'a': {'a': 1, 'b': 0}, 'b': {'a': 1, 'b': 0}}
솔루션에 교육적 가치가 있지만 OP에서 요구하는 형식을 무시합니다. – fabianegli
당신은이 기능에서 필요한 기능에 대한보다 구체적인 될 필요가 대답합니다. 또한 지금까지 시도한 것에 대한 특정 코드를 게시하십시오. – Brian
누락 된 키와 값을 찾는 사전의 전체 목록을 생성하려고합니다. 나는이 같은 a = [{ 'a': {}}, { 'b': {}}, { 'c': {}}]와 같은 dict의 초기화 된 빈 목록을 가지고 있고 b = [{ 'a': { 'a': 1, 'b': 0} 이제 {{a ': 1}}, {'b ': 1} }}, { 'b': { 'a': 0, 'b': 1}}] –
당신이 뭘 원하는거야? 'A = [{ 'a': {}}, { 'b': {}}, { 'c': {}}]; B = {{a ': {'A ': 1}}, {'b ': {'B ': 1}}' 1, 'B': 0}}, { 'b': { 'A': 0, 'B': 1}}, { 'c': { 'A': 0, 'B' ]' – fabianegli