在python中,我有一个列表城市,其中包含大约12个字典,每个字典在每个字典的完全相同的位置包含4个key:value对。如何在每个字典中访问或打印相同的值对?
答案 0 :(得分:0)
如果知道键的名称(在字典中的键值巴黎),则可以循环进入列表并直接打印它。例如: 下面如果我们知道有2个字典的列表有键:1,2,3 我们直接打印值
city = [{1:'博帕尔',2:'纽约',3:'意大利'},{1:'伦敦',2:'印度',3:'欧洲'}]
对于我在城市中: 打印(i [1]),i [2],i [3]) 对于我在城市: 对于i.items()中的键,值: 打印(键,值)
我希望这行得通
答案 1 :(得分:0)
由于字典的键始终相同,因此您可以遍历列表的所有元素,并打印与所选特定键相对应的值。
cities = [
{'population': 1000,
'name': 'Oslo',
'size': 12513200,
'temperature': 2},
{'population': 20000,
'name': 'Chongqing',
'size': 412400000,
'temperature': 15},
{'population': 1000,
'name': 'Shanghai',
'size': 5512332,
'temperature': 33}
]
def print_specific(d, k):
print(*[i[k] for i in d], sep='\n')
print_specific(cities, 'name')
输出
Oslo
Chongqing
Shanghai
答案 2 :(得分:0)
我写了一个国家代码示例,发现我不知道您的代码(ps所有数据都是伪造的):
dic = {'uk':{'capital':'london','dimension':235423, 'population':31321},'france':{'capital':'paris','dimension':43523, 'population':542342},'italy':{'capital':'rome','dimension':935123, 'population':4323342}}
如果您只想占领主要国家,那就做:
dic.keys()
这五个人
['france', 'italy, 'uk']
如果您希望动态获取有关一个国家的所有信息,可以执行以下操作:
k=dic.keys()
for i in k:
print dic[i]
输出:
{'population': 4323342, 'dimension': 935123, 'capital': 'rome'}
{'population': 31321, 'dimension': 235423, 'capital': 'london'}
{'population': 542342, 'dimension': 43523, 'capital': 'paris'}
如果您需要一些特定信息,只需在打印件上添加特定节点:
k=dic.keys()
for i in k:
print dic[i]['capital']
输出:
rome
london
paris
如果您有字典列表,则可以对其进行迭代并采用所需的值:
l = [{'人口':4323342,'维度':935123,'资本':'罗马'}, {'population':31321,'dimension':235423,'capital':'london'}, {'population':542342,'dimension':43523,'capital':'paris'}]
for i in l:
print i['capital']
输出:
rome
london
paris
答案 3 :(得分:0)
为什么不为此创建自定义类?
class CustomMap(object):
def __init__(self, *maps):
self.maps = maps
def __getitem__(self, key):
found = []
for mapping in self.maps:
if mapping.get(key):
found.append(mapping.get(key))
else:
continue
return found
def get(self, key):
return self.__getitem__(key)
d = {'a': 2, 'b': 3}
e = {'a': 5, 'f': 1}
c = CustomMap(d, e)
c['a']
[2, 5]
c.get('a')
[2, 5]