【发布时间】:2017-09-08 03:12:26
【问题描述】:
设置
我有一本包含地区和邮政编码的字典,例如
d={
'Center':['A1', 'B1','C1', 'D1'],
'West':['A1', 'B2','C2', 'D2'],
⋮
'North':['A1', 'B2','C3', 'D3'],
}
问题
某些邮政编码位于复合区,例如A1 在 Center、West 和 North 和 B2 在 West 和 North 中。
我想检查多个地区的邮政编码,然后用这些邮政编码和地区创建一个“反之亦然”字典,即
vice_versa = {
'A1':['Center', 'West', 'North']
⋮
'B2':['West', 'North']
}
(半)到目前为止的代码
vice_versa={}
for key in list(d.keys()):
for x in d[key]:
if x in d[~key]:
vice_versa[x] = key, ~key
有两个问题:
- 如何迭代其他键,例如如果
key='Center'那么如何迭代~key='West'和~key='North'。 - 如何将所有键分配给
vice_versa,例如如何将'Center'、'North'和'West'分配给vice_versa['A1']。
为清楚起见,vice_versa 应仅包含“重复”邮政编码,例如A1 和 B2,not 示例中的其他邮政编码(例如,not C1)。
【问题讨论】:
-
您是否也想在单个区域中包含邮政编码?
-
@WillemVanOnsem,说得好。不,我不想那样。只有“重复”的邮政编码。我会把它添加到问题中。
标签: python dictionary key iteration