Python 根据更改/删除更改的状态打印字典中的列表

Python 根据更改/删除更改的状态打印字典中的列表,python,Python,以下是我正在尝试的,不确定我把事情搞砸了。我在底部有预期的输出。有人能就这里的问题提供意见吗 在字典中为每个主更改及其从属更改创建列表 重复步骤1,直到depchange状态不是新的 我的代码: def depchange(change): depchange_status='' if change == "23456": depchange=33456 depchange_status == 'NEW' if change == "334

以下是我正在尝试的,不确定我把事情搞砸了。我在底部有预期的输出。有人能就这里的问题提供意见吗

  • 在字典中为每个主更改及其从属更改创建列表

  • 重复步骤1,直到depchange状态不是新的

  • 我的代码:

    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': [],
        }
    '''
    

    交换这两行的顺序。您想在
    dep
    的赋值中使用
    master\u change
    的旧值

    master_change = dep_change
    dep[master_change]=dep_change
    
    另外,在一些作业中,您有
    ==
    而不是
    =

    depchange_status == 'NEW'
    depchange_status == 'COMPLETED'
    

    交换这两行的顺序。您想在
    dep
    的赋值中使用
    master\u change
    的旧值

    master_change = dep_change
    dep[master_change]=dep_change
    
    另外,在一些作业中,您有
    ==
    而不是
    =

    depchange_status == 'NEW'
    depchange_status == 'COMPLETED'
    
    呃,在你的depchange()函数中,你实际上是想比较depchange\u的状态,还是想改变它们?你在那里有“==”

    在同一个函数中,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()
    
    呃,在你的depchange()函数中,你实际上是想比较depchange\u的状态,还是想改变它们?你在那里有“==”

    在同一个函数中,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()
    

    有更多的
    可读的
    代码,变量名称之间不要相差一个下划线。有更多的
    可读的
    代码,变量名称之间不要相差一个下划线。这解决了我的问题,但while循环似乎不起作用。。我仍然没有看到“'33456':[],”正在打印…33456是一个状态为“新”的从属更改。。。此外,33456没有任何依赖项,因此while循环应该在此停止,这是我问题的固定部分,但while循环似乎不起作用。。我仍然没有看到“'33456':[],”正在打印…33456是一个状态为“新”的从属更改。。。此外,33456没有任何依赖项,所以while循环应该停止here@Trueerror-我看到值未打印为列表..当前它们打印为{'33456':'','23456':'33456'}..如何将值打印为列表?@Trueerror-我看到值未打印为列表..当前它们打印为{'33456':'','23456':'33456'}..如何使值成为列表?