抱歉,python新手,当我说getID('foo')时,尝试生成一个func,它将返回id#。在
info = {1: {'desc': 'one', 'length': 1, 'id': 1, 'weight': '4', 'name': 'foo'},
506: {'desc': 'two', 'length': 2, 'id': 506, 'weight': '32', 'name': 'bar'},
1156: {'desc': 'Three.', 'length': 3, 'id': 1156, 'weight': '64', 'name': 'too'}}
这是我所拥有的,但并没有得到我想要的。任何帮助都很好谢谢
^{2}$
ie_info
与全局变量info
不匹配。在id
:v['id']
id
引用^{name
键,值。dict['name']
,dict['id']
这就是为什么你不是在所有的钥匙上循环,而是只拿走你想要的那一个
使用正确的数据结构将使这一点变得容易得多,而且,假设您多次调用
GetID
,也会更快。(通常,当您发现从数据中提取所需信息太复杂时,答案通常是更改数据结构。)如果您有一个字典,它将每个
name
映射到id
,那么可以这样做:如果您以前从未见过
d.get(key, default)
,那么它就相当于d[key]
,只是如果键不存在,您将得到default
,而不是引发一个KeyError
。在那么,你怎么建那本字典呢?好吧,您已经知道如何显式地迭代现有的字典,所以让我们这样做:
^{pr2}$如果你想让它更简洁:
不管怎样,您只需在字典上循环一次,以设置
name_to_id
映射,而不是每次需要查找名称时。这是一个更简单的循环。在这意味着现在每个名字查找都非常简单,速度也非常快。在
相关问题 更多 >
编程相关推荐