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]
但它告诉我字符串索引超出范围。
你使用 dict 的方式似乎很奇怪,我认为在你的情况下你应该改用 list
pets = {'Animal': {'Dog': ['Poodle', 'Boxer', 'Terrier'], 'Cat': ['Sphynx', 'Ragdoll', 'Birman']}}
如果你想打印一个特定的品种,那么你可能需要一个额外的键来获得使用字典的好处
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'
>>>
print(list(pets.values()))
输出:
[['Poodle', 'Boxer', 'Terrier'], ['Sphynx', 'Ragdoll', 'Birman']]
- 如您所见,这是一个列表列表。现在每个项目都是您可以通过索引访问的列表。
breed = list(pets.values())[0][1]
- 这会给你想要的结果。
你的数据结构是一个以 "sets" 作为值的字典。
集合不可订阅,在列表中转换不保持顺序
>>> list(pets['Dog'])
['Boxer', 'Poodle', 'Terrier']
那么问题是....你真正需要什么?
如果您需要访问以繁殖您 could/should 使用列表或元组而不是集合
在 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]
但它告诉我字符串索引超出范围。
你使用 dict 的方式似乎很奇怪,我认为在你的情况下你应该改用 list
pets = {'Animal': {'Dog': ['Poodle', 'Boxer', 'Terrier'], 'Cat': ['Sphynx', 'Ragdoll', 'Birman']}}
如果你想打印一个特定的品种,那么你可能需要一个额外的键来获得使用字典的好处
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'
>>>
print(list(pets.values()))
输出:
[['Poodle', 'Boxer', 'Terrier'], ['Sphynx', 'Ragdoll', 'Birman']]
- 如您所见,这是一个列表列表。现在每个项目都是您可以通过索引访问的列表。
breed = list(pets.values())[0][1]
- 这会给你想要的结果。
你的数据结构是一个以 "sets" 作为值的字典。 集合不可订阅,在列表中转换不保持顺序
>>> list(pets['Dog'])
['Boxer', 'Poodle', 'Terrier']
那么问题是....你真正需要什么?
如果您需要访问以繁殖您 could/should 使用列表或元组而不是集合