Google和在线文档都无法提供有关我查询的更多信息,因此我想我会在这里询问社区。 p>
在Perl中,您可以轻松设置哈希哈希哈希值并测试最终密钥,如下所示:
my $hash = {};
$hash{"element1"}{"sub1"}{"subsub1"} = "value1";
if (exists($hash{"element1"}{"sub1"}{"subsub1"})) {
print "found value\n";
}
Python中“最佳实践”的等价物是什么?
答案 0 :(得分:16)
最接近的等价物可能类似于以下内容:
import collections
def hasher():
return collections.defaultdict(hasher)
hash = hasher()
hash['element1']['sub1']['subsub1'] = 'value1'
if 'subsub1' in hash['element1']['sub1']:
print 'found value'
答案 1 :(得分:5)
至于这是否是Python中的最佳实践还有争议:
hash = {}
hash['element1', 'sub1', 'subsub1'] = 'value'
if ('element1', 'sub1', 'subsub1') in hash:
print "found value"
但是,如果适合你的话,它确实有效且非常优雅。
主要缺点是您没有中间访问权限。你不能做:
if ('element1', 'sub1') in hash:
print "found value"
答案 2 :(得分:3)
from collections import defaultdict
tree = lambda: defaultdict(tree)
t = tree()
t[1][2][3] = 4
t[1][3][3] = 5
t[1][2]['test'] = 6
答案 3 :(得分:0)
我不知道我是否会得到任何协议,但这就是我通常宣布词典的词典:
someObj = {
'element1': {
'sub1': {
'subsub1': 'value1'
}
}
}
至于检查是否存在元素,我同意这种方法:
try:
someObj['element1']['sub1']['subsub1']
except KeyError:
print('no value found')
else:
print('found value')