簡體   English   中英

Python 打印字典中的值的值

[英]Python printing values of values in a dictionary

在 Python 中,我知道您通過執行variable.values()來打印字典中鍵的值。 但是如果我想打印一個特定值的值怎么辦?

例如:

pets = {'Dog': ['Poodle', 'Boxer', 'Terrier'], 'Cat': ['Sphynx', 'Ragdoll', 'Birman']}

我想專門選擇一種特定的動物品種。 例如,我只想打印Boxer

您可以執行以下操作:

animal = list(pets.values())[0]
breed = list(animal.values())[1]
print(breed)

這會給你Boxer 但是,我很好奇我是否可以在一行代碼中做到這一點,比如打印一個值的值。

我試過了:

breed = list(list(pets.values()))[0][1]

但它告訴我字符串索引超出范圍。

print(list(pets.values()))

output:

[['Poodle', 'Boxer', 'Terrier'], ['Sphynx', 'Ragdoll', 'Birman']]
  • 如您所見,它是一個列表列表。 現在每個項目都是您可以通過索引訪問的列表。
breed = list(pets.values())[0][1]
  • 這會給你想要的結果。

您的數據結構是一個以“集合”為值的字典。 集合不可下標,並且在列表中轉換不會保持順序

>>> list(pets['Dog'])
['Boxer', 'Poodle', 'Terrier']

那么問題是......你真正需要什么?

如果您需要訪問品種,您可以/應該使用列表或元組而不是集合

您如何使用 dict 似乎很奇怪,我假設在您的情況下您應該使用 list 代替

pets = {'Animal': {'Dog': ['Poodle', 'Boxer', 'Terrier'], 'Cat': ['Sphynx', 'Ragdoll', 'Birman']}}

如果您想要打印特定品種,那么您可能需要一個額外的密鑰才能獲得使用 dict 的好處

pets = {'Animal': {'Dog': {1:'Poodle', 2:'Boxer', 3:'Terrier'}, 'Cat': ['Sphynx', 'Ragdoll', 'Birman']}}

然后你可以得到拳擊手

pets['Animal']['Dog'][2]

您定義此字典的方式會產生語法錯誤:

>>> pets = {'Animal': 'Dog':{'Poodle','Boxer','Terrier'}, 'Cat':{'Sphynx','Ragdoll','Birman'}}
  File "<stdin>", line 1
    pets = {'Animal': 'Dog':{'Poodle','Boxer','Terrier'}, 'Cat':{'Sphynx','Ragdoll','Birman'}}
                           ^
SyntaxError: invalid syntax

我創建了一個類似的字典(這次是一個以物種為鍵,以品種為值的字典),並展示了如何索引這個新字典:

>>> pets = {'Dog':('Poodle','Boxer','Terrier'), 'Cat':('Sphynx','Ragdoll','Birman')}
>>> pets['Dog'][1]
'Boxer'
>>>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM