在python的词典列表中访问相同的key:value对

时间:2019-01-21 16:57:41

标签: python list dictionary

在python中,我有一个列表城市,其中包含大约12个字典,每个字典在每个字典的完全相同的位置包含4个key:value对。如何在每个字典中访问或打印相同的值对?

4 个答案:

答案 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]