一键索引多个值的Dict

时间:2019-10-07 14:05:09

标签: python dictionary

我是python的新手,我想知道我是否有办法在特定索引处提取值。假设我有一个与多个值(list)关联的键。

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}

假设我要遍历值并打印出等于“ DOG”的值。值键对是否具有与值的位置相关联的特定索引?

我已经尝试阅读dict以及它的工作方式,显然您无法对其进行索引。我只是想知道是否有办法解决这个问题。

4 个答案:

答案 0 :(得分:2)

您可以执行以下操作(包括注释):

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}

for keys, values in d.items(): #Will allow you to reference the key and value pair
    for item in values:        #Will iterate through the list containing the animals
        if item == "DOG":      
            print(item)
            print(values.index(item))  #will tell you the index of "DOG" in the list.

答案 1 :(得分:0)

所以也许这会有所帮助:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
for item in d:
    for animal in (d[item]):
        if animal == "DOG":
            print(animal)
  

更新-如果我想比较字符串以查看它们是否相等,该怎么办...让我们说一下第一个索引处的值是否等于第二个索引处的值。

您可以使用此:

d = {'ANIMAL' : ['CAT','DOG','FISH','HEDGEHOG']}
for item in d:
    for animal in (d[item]):
        if animal == "DOG":
            if list(d.keys())[0] == list(d.keys())[1]:
                 print("Equal")
            else: print("Unequal")

答案 2 :(得分:0)

字典中的键和值由键索引,并且没有列表中的固定索引。

但是,您可以利用'OrderedDict'的使用为字典提供索引方案。它很少使用,但方便。

话虽这么说,python3.6中的字典按插入顺序排列:

有关此内容的更多信息:

Are dictionaries ordered in Python 3.6+?

答案 3 :(得分:0)

d = {'animal': ['cat', 'dog', 'kangaroo', 'monkey'], 'flower': ['hibiscus', 'sunflower', 'rose']}
    for key, value in d.items():
        for element in value:
            if element is 'dog':
                print(value)

这有帮助吗?还是要在字典中打印键索引?