[英]fastest way to search through this data object? (python)
我有一个看起来像这样的数据对象:
{
'node-16': {
'tags': ['cuda'],
'localNodes': [
{
'name': 'nC',
'consumesFrom': ['nA', 'nB'],
'classType': 'VectorAdder.VectorAdder'
},
{
'name': 'nB',
'consumesFrom': None,
'classType': 'RandomVector'
}
]
},
'node-17': {
'tags': ['boring'],
'localNodes': [
{
'name': 'nA',
'consumesFrom': None,
'classType': 'RandomVector'
}
]
}
}
注意,节点nA是nC的生产者。 找出给定localNode是否是数据结构中另一个localnode的生产者的最快方法是什么(不在同一列表中)?
例如,我想知道nA(节点17)产生nC(存在于节点16上)。 但是我不需要知道nB是为nC生成的,因为它们存在于相同的localNodes列表中。
namedict = dict((x['name'], y) for y in data for x in data[y]['localNodes'])
proddict = dict((z['name'], [y for y in z['consumesFrom'] if namedict[y] != x])
for x in data for z in data[x]['localNodes'] if z['consumesFrom'] is not None)
print 'nA' in proddict['nC']
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.