1

以下是我正在尝试的,不知道我在哪里搞砸了。我在底部有预期的输出。任何人都可以就这里的问题提供意见吗?

  1. 在字典中为每个主更改及其依赖更改创建一个列表

  2. 重复步骤 #1 直到 depchange 状态不是 NEW

我的代码:

def depchange(change):
    depchange_status=''
    if change == "23456":
        depchange=33456
        depchange_status == 'NEW'
    if change == "33456":
        depchange=""
        depchange_status == 'COMPLETED'
    return (depchange,depchange_status)


def main ():
    master_change="23456"
    dep={}
    while True:
        dep_change,depchange_status=depchange(master_change)
        master_change = dep_change
        dep[master_change]=dep_change
        if depchange_status != 'NEW':
            break
    print dep

if __name__ == '__main__':
    main()


'''
EXPECTED OUTPUT:-
dep = {
    '23456': ['33456'],
    '33456': [],
    }
'''
4

2 回答 2

1

呃,在您的 depchange() 函数中,您实际上是要比较depchange_status,还是要更改它们?你在那里有'=='。

就是这样,在同一个函数中,depchange 从字符串切换到 int。我假设你希望它保持一个字符串。

def depchange(change):
    depchange_status=''
    if change == "23456":
        depchange="33456"
        depchange_status = 'NEW'
    if change == "33456":
        depchange=""
        depchange_status = 'COMPLETED'
    return (depchange,depchange_status)


def main ():
    master_change="23456"
    dep={}
    while True:
        dep_change,depchange_status=depchange(master_change)
        dep[master_change]=[dep_change]
        master_change = dep_change
        if depchange_status != 'NEW':
            break
    print dep

if __name__ == '__main__':
    main()
于 2013-04-27T20:00:22.123 回答
0

交换这两行的顺序。您想master_change在对 的赋值中使用旧值dep

master_change = dep_change
dep[master_change]=dep_change

你也有几个任务==而不是=

depchange_status == 'NEW'
depchange_status == 'COMPLETED'
于 2013-04-27T19:41:50.690 回答