Python dict键,值返回多个值
我有以下代码:Python dict键,值返回多个值,python,dictionary,Python,Dictionary,我有以下代码: cat_dict = { 'ER' : 'ELECTRIC', 'EL' : 'ELECTRIC', "EC" : "ELECTRIC", "RM" : "MISC", "CP" : "GAS/OIL", 'P' : 'HYDRO', "RP" : "GAS/OIL"
cat_dict = {
'ER' : 'ELECTRIC',
'EL' : 'ELECTRIC',
"EC" : "ELECTRIC",
"RM" : "MISC",
"CP" : "GAS/OIL",
'P' : 'HYDRO',
"RP" : "GAS/OIL",
"OR" : "GAS/OIL",
"PL" : "MISC",
"PR" : "GAS/OIL"
}
for key, value in cat_dict.items():
if cat in key:
print("CAT: ", value)
我试图匹配变量“cat”中的一个字符串,这是一个文本字符串,以获取对应键的值,但由于某种原因,当代码匹配“p”字符串时,它返回所有包含“p”的dict值,而不仅仅是一个匹配的“HYDRO”。是否有一种方法可以匹配键:只匹配“P”键的值而不是所有的P
谢谢如果我理解正确,这应该是可行的:
for key, value in cat_dict.items():
if cat == key:
print("CAT: ", value)
请注意,字典的全部用途是转换这些内容。这也意味着这项工作:
cat_dict[cat]
将字典想象成一个列表,但是索引是您设置的,而不是它们的位置。如果我理解正确,这应该是可行的:
for key, value in cat_dict.items():
if cat == key:
print("CAT: ", value)
cat_dict = {
'ER' : 'ELECTRIC',
'EL' : 'ELECTRIC',
"EC" : "ELECTRIC",
"RM" : "MISC",
"CP" : "GAS/OIL",
'P' : 'HYDRO',
"RP" : "GAS/OIL",
"OR" : "GAS/OIL",
"PL" : "MISC",
"PR" : "GAS/OIL"
}
请注意,字典的全部用途是转换这些内容。这也意味着这项工作:
cat_dict[cat]
把字典想象成一个列表,但是索引是你设置的,而不是它的位置
cat_dict = {
'ER' : 'ELECTRIC',
'EL' : 'ELECTRIC',
"EC" : "ELECTRIC",
"RM" : "MISC",
"CP" : "GAS/OIL",
'P' : 'HYDRO',
"RP" : "GAS/OIL",
"OR" : "GAS/OIL",
"PL" : "MISC",
"PR" : "GAS/OIL"
}
正如我所说,看起来您需要==
而不是中的
for key, value in cat_dict.items():
if cat == key:
print("CAT: ", value)
更精简的是:
print(cat_dict[cat])
除非你不确定钥匙是否在那里(老实说,有点过度设计)
正如我所说,看起来您需要==
而不是中的
for key, value in cat_dict.items():
if cat == key:
print("CAT: ", value)
更精简的是:
print(cat_dict[cat])
除非你不确定钥匙是否在那里(老实说,有点过度设计)
它返回所有包含“p”的dict值,而不仅仅是一个匹配的“HYDRO”
这是因为您使用的是“in”运算符,这意味着如果键中存在p,则打印该值。因此,将执行包含if条件的p字母的任何键。
相反,您可以选择“==”来匹配两个字符串
从帖子上看,不清楚猫在if状态下做了什么。如果您试图将cat与键匹配,则可以使用if cat==key,这是基于cat变量包含字母“P”的假设。它返回所有包含“P”的dict值,而不仅仅是一个匹配的“HYDRO”
这是因为您使用的是“in”运算符,这意味着如果键中存在p,则打印该值。因此,将执行包含if条件的p字母的任何键。
相反,您可以选择“==”来匹配两个字符串
从帖子上看,不清楚猫在if状态下做了什么。如果您试图将cat与键匹配,那么可以使用if cat==key,这是基于假设cat变量包含字母“P”。在if
条件下,变量cat
是什么?看起来您需要if cat==key
,而不是if cat in key
或仅仅cat_dict[cat]
用您自己的话来说,当您编写时,如果cat In key:
,您认为这意味着什么?例如,如果cat
等于“P”
(如您所述)并且键
等于“RP”
(假设这是我们目前正在检查的,您希望条件不满足?为什么?“获取相应键的值”正确;这就是字典的用途。您只需执行cat dict[cat]
。dict
类型的全部要点是使其工作。在if
条件下的变量cat
是什么?看起来您需要if cat==key
,而不是if cat in key
或仅仅cat_dict[cat]
用你自己的话来说,当你写如果cat In key:
,你期望这是什么意思?例如,如果cat
等于“P”
(正如你所描述的)而key
等于“RP”
(假设这就是我们目前正在检查的,你期望条件不满足?为什么?“获取对应键的值”正确;这就是字典的作用。您只需执行cat\u dict[cat]
。dict
类型的全部目的就是使其工作。