Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python dict键,值返回多个值_Python_Dictionary - Fatal编程技术网

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
类型的全部目的就是使其工作。