需要Python字典魔法吗

需要Python字典魔法吗,python,dictionary,flask,jinja2,Python,Dictionary,Flask,Jinja2,我有两个Python字典,它们有一个关联的位置和数量 A: {'Pompano Beach': ['13'], ' Miami': ['18'], ' W. Palm Beach': ['18']} B: {'Atlanta': ['25'], 'Las Vegas': ['50+']} 我需要在html表格中打印出来。我目前正在使用带jinja2模板的烧瓶 我希望我的结果如下: C: {'Pompano Beach': ['13', '0'], ' Miami': ['18', '0'],

我有两个Python字典,它们有一个关联的位置和数量

A: {'Pompano Beach': ['13'], ' Miami': ['18'], ' W. Palm Beach': ['18']}
B:  {'Atlanta': ['25'], 'Las Vegas': ['50+']}
我需要在html表格中打印出来。我目前正在使用带jinja2模板的烧瓶

我希望我的结果如下:

C: {'Pompano Beach': ['13', '0'], ' Miami': ['18', '0'], ' W. Palm Beach': ['18', '0'], 'Atlanta': ['0','25'], 'Las Vegas': ['0', '50+']}
其中,每个列表值中的0索引是A数量的索引,1索引是B数量的索引。 此外,如果B中不存在城市,则添加一个0。相同,如果在中不存在,则在其相应索引中添加0


我不确定是否有更简单的解决方案,但我已经到了这样一个地步,我相信这就是我需要的,以便使用jinja2模板保持我的样式。

您可以在使用
时使用dict理解。使用默认值
['0']
获取

C = {k: A.get(k, ['0']) + B.get(k, ['0']) for k in list(A) + list(B)}
print(C)
输出

{'Pompano Beach': ['13', '0'], ' Miami': ['18', '0'], ' W. Palm Beach': ['18', '0'], 
 'Atlanta': ['0', '25'], 'Las Vegas': ['0', '50+']}
您可以获得相同的输出,同时避免使用

C = {k: A.get(k, ['0']) + B.get(k, ['0']) for k in A.keys() | B.keys()}

您可以在使用
时使用dict理解。使用默认值
['0']
获取

C = {k: A.get(k, ['0']) + B.get(k, ['0']) for k in list(A) + list(B)}
print(C)
输出

{'Pompano Beach': ['13', '0'], ' Miami': ['18', '0'], ' W. Palm Beach': ['18', '0'], 
 'Atlanta': ['0', '25'], 'Las Vegas': ['0', '50+']}
您可以获得相同的输出,同时避免使用

C = {k: A.get(k, ['0']) + B.get(k, ['0']) for k in A.keys() | B.keys()}