按创建时间

时间:2017-11-10 03:03:12

标签: python

在IPython中工作,我输入了3个作业:

In [1]: foo = 1

In [2]: bar = 2

In [3]: zoo = 3

我打算拿一张它们的字典。

In [4]: globals()
Out[4]: 
{...
 'bar': 2,
 'exit': <IPython.core.autocall.ExitAutocall at 0x10e61b048>,
 'foo': 1,
 'get_ipython': <bound method InteractiveShell.get_ipython of <IPython.terminal.interactiveshell.TerminalInteractiveShell object at 0x10e617208>>,
 'quit': <IPython.core.autocall.ExitAutocall at 0x10e61b048>,
 'zoo': 3}

globals按字母顺序打印一个字典,所以我不能用一个操作来选择它们。

如何以assignnent_created顺序从globals()获取dict?

1 个答案:

答案 0 :(得分:0)

首先,全局变量不跟踪创建的顺序。 其次,您可以尝试删除不需要的项目,然后按如下方式对字典进行排序:

def flatten(d, prefix=()):
    for k,v in d.items():
        if isinstance(v, dict):
            yield from flatten(v, prefix=prefix+(k,))
        else:
            yield list(prefix + (v,))