计算python dicitonaryarray数据结构的非空末页-递归算法?

计算python dicitonaryarray数据结构的非空末页-递归算法?,第1张

计算python dicitonary / array数据结构的非空末页-递归算法?

也许这可以指导您正确的方向。

byPath
收集嵌套的字典项。调用之后,您基本上可以将结果列表弄平,并检查是否满足您的条件(例如
elem !=''
或类似条件
not elem
):

x = #your x as posteddef byPath (tree, path):    try: head, tail = path.split ('.', 1)    except: return tree [path]    if head == 'XX': return [byPath (node, tail) for node in tree]    else: return byPath (tree [head], tail)print (byPath (x, 'top.middle.XX.nested') )print (byPath (x, 'top.last.XX.nested.XX.first') )print (byPath (x, 'top.last.XX.nested.XX.second') )print (byPath (x, 'other') )

编辑 :这部分实际计数那些不是空字符串的元素:

def count (result):    if isinstance (result, list):        total = 0        positive = 0        for e in result: r = count (e) total += r [1] positive += r [0]        return (positive, total)    else: return (0 if result == '' else 1, 1)a = byPath (x, 'top.middle.XX.nested')b = byPath (x, 'top.last.XX.nested.XX.first')c = byPath (x, 'top.last.XX.nested.XX.second')d = byPath (x, 'other')for x in [a, b, c, d]: print (count (x) )

将所有内容放在一起:

def f (tree, path):    return count (byPath (tree, path) )for path in ['top.middle.XX.nested', 'top.last.XX.nested.XX.first', 'top.last.XX.nested.XX.second', 'other']:    print (path, f (x, path) )


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5631359.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存