Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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访问此词典?_Python_Python 3.x_List_Dictionary - Fatal编程技术网

有没有更好的方法用python访问此词典?

有没有更好的方法用python访问此词典?,python,python-3.x,list,dictionary,Python,Python 3.x,List,Dictionary,我对python有点陌生,也做过编程,我知道这是最基本的,但我的大脑现在已经融化了 我需要对代表类别的id进行分类,例如: id:12312=>食物 id:123132=>食物 但是我正在用dict中的类别键入每个id,有一种更好的方法: 比如:{[食物:{12132144454556444},煤气:{233566555}} 但它需要根据该值查找,并提供相应的cat 这是我的密码 def clasificadorTipoGasto(id): dict={ 131794442:“加斯托斯·梅诺雷斯

我对python有点陌生,也做过编程,我知道这是最基本的,但我的大脑现在已经融化了

我需要对代表类别的id进行分类,例如: id:12312=>食物 id:123132=>食物

但是我正在用dict中的类别键入每个
id
,有一种更好的方法: 比如:
{[食物:{12132144454556444},煤气:{233566555}}
但它需要根据该值查找,并提供相应的cat

这是我的密码

def clasificadorTipoGasto(id):
dict={
131794442:“加斯托斯·梅诺雷斯”,101602465:“超级麦卡多斯”,
130403899:“超级麦卡多”,101793198:“超级麦卡多”,
101796822:“超级麦卡多”,101787589:“超级麦卡多”,
130246491:“餐厅”,124003091:“餐厅”,
101658347:“餐厅”,130123314:“餐厅”,
130751366:“餐厅”,101568224:“餐厅”,
130640726:“餐厅”,101808152:“餐厅”,
130389586:“餐厅”,101582936:“机票”,
101068744:“可燃物”,101726997:“可燃物”,
130551618:“可燃物”,101033738:“可燃物”,
130274487:“杂项”,112107388:“杂项”,
130900663:“杂项”,101036354:“杂项”
}
如果dict.keys()中的id为:
返回指令[id]
其他:
返回“一般”

dict.get
将尝试返回映射到给定键的值,但如果查找失败,则返回默认值,而不是引发
键错误

def clasificadorTipGasto(id):
    d = {...}

    return d.get(id, "general")
如果您试图从另一个将类别映射到不同ID的dict生成该dict
d
,请尝试

ids = {"food": {12132,1444,54556,444}, "gas": {233,566,555}}
d = {cat_id: category for category in ids for cat_id in ids[category]}

dict.get
将尝试返回映射到给定键的值,但如果该查找失败,则返回默认值,而不是引发
KeyError

def clasificadorTipGasto(id):
    d = {...}

    return d.get(id, "general")
如果您试图从另一个将类别映射到不同ID的dict生成该dict
d
,请尝试

ids = {"food": {12132,1444,54556,444}, "gas": {233,566,555}}
d = {cat_id: category for category in ids for cat_id in ids[category]}
您只需返回:

return d.get(id, "general")
这里的第二个参数是默认值,如果找不到键,将返回该值

您只需返回:

return d.get(id, "general")

这里的第二个参数是默认值,如果找不到键,将返回该值

这应该是一个愚蠢的问题,但是,现在我需要将01239129个数字作为字符串进行比较,我尝试过封装“20320”这些数字,现在它将所有内容都作为“常规”进行抛出,不进行分类@Chepnert这应该是个愚蠢的问题,但是,现在我需要将01239129数字作为字符串进行比较,我尝试过封装'20320'这些数字,现在它将所有内容都作为“常规”进行处理,而不是进行分类@切普纳