Python列表只包含我创建的变量(Python List ONLY the variables I have created)
我运行了我的Python脚本,根据%whos IPython命令创建了22变量。
我希望能够在Python(而不是IPython)脚本中列出我的变量。
到目前为止,我尝试了dir() , vars().keys() , locals().keys()和globals().keys() :
In [2]: len( [v for v in dir() if not v.startswith('_')] ) Out[2]: 1015 In [3]: len( [v for v in vars().keys() if not v.startswith('_')] ) Out[3]: 1015 In [4]: len( [v for v in locals().keys() if not v.startswith('_')] ) Out[4]: 1015 In [5]: len( [v for v in globals().keys() if not v.startswith('_')] ) Out[5]: 1015我只想要我创建的MY变量,我该怎么做?
I have run my Python script that created 22 variables according to %whos IPython command.
I want to be able to list MY variables from within a Python (not IPython) script.
So far, I tried dir(), vars().keys(), locals().keys() and globals().keys() :
In [2]: len( [v for v in dir() if not v.startswith('_')] ) Out[2]: 1015 In [3]: len( [v for v in vars().keys() if not v.startswith('_')] ) Out[3]: 1015 In [4]: len( [v for v in locals().keys() if not v.startswith('_')] ) Out[4]: 1015 In [5]: len( [v for v in globals().keys() if not v.startswith('_')] ) Out[5]: 1015I ONLY want MY variables that I created, how can I do that ?
最满意答案
在声明之前,您可以跟踪原始的:
orig_keys = set(globals().keys()) a = 10 b = 100 c = 1000 my_keys = set(globals().keys()) - orig_keys print(my_keys)结果是:
{'orig_keys', 'a', 'c', 'b'}你可以在这里查看
You can keep track of the original ones before declaring:
orig_keys = set(globals().keys()) a = 10 b = 100 c = 1000 my_keys = set(globals().keys()) - orig_keys print(my_keys)Results in:
{'orig_keys', 'a', 'c', 'b'}You can check it live here
更多推荐
发布评论