Python:使用字典打印因变量

2024-05-16 04:18:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个问题如下:

B = C, D
A = B
C = E

意思是B依赖于变量C和D,而A依赖于B,依此类推。变量E和D是独立的。在

“A”的输入应返回:

^{pr2}$

列出所有因变量。为了解决这个问题,我首先定义了一个字典来轻松地迭代这个条件:

^{3}$

然而,我现在被困在如何循环这个,以便有效地打印所有的孩子。我认为这是错误的,但我认为我的方向是正确的:

def problem(value):
    letter = {'A' : ['B'], 'B' : ['C', 'D'], 'C' : ['E']}
    for i in letter:
        if i != value:
            continue
        if len(letter[i]) > 1:
            for k in letter:
                print("".join(letter[k]), k)
        print("".join(letter[i]), i)

请帮忙!在


Tags: inforif字典定义value错误孩子
2条回答

你在另一个列表中有一个列表。在另一个for循环中编写一个嵌套的for循环,然后在测试逻辑中运行它。对于外部列表,迭代内部列表的每个部分,然后移动到外部列表的下一部分。在

在快速搜索后从http://code.activestate.com/recipes/576570-dependency-resolver/偷来的。在

def dep(arg):
    '''
        Dependency resolver

    "arg" is a dependency dictionary in which
    the values are the dependencies of their respective keys.
    '''
    d=dict((k, set(arg[k])) for k in arg)
    r=[]
    while d:
        # values not in keys (items without dep)
        t=set(i for v in d.values() for i in v)-set(d.keys())
        # and keys without value (items without dep)
        t.update(k for k, v in d.items() if not v)
        # can be done right away
        r.append(t)
        # and cleaned up
        d=dict(((k, v-t) for k, v in d.items() if v))
    return r

if __name__=='__main__':
    d=dict(
        a=('b','c'),
        b=('c','d'),
        e=(),
        f=('c','e'),
        g=('h','f'),
        i=('f',)
    )
    print dep(d)

相关问题 更多 >