获取与Python中的对象对应的所有可能变量名的列表

Get a list of all possible variable names corresponding to an object in python

本问题已经有最佳答案,请猛点这里访问。

假设我定义了这些变量

1
2
3
4
5
a=1
b="2"
c=2
d=2
e="2"

我需要一种方法来获取所有可以与我指定的对象配对的变量名。例如,如果我指定"2",它应该返回["b","e"],因为这是两个值为"2"的变量。如果我指定整数2,它应该给我["c","d"]。有办法吗?我也在找一个Python式的答案。


对于全局变量,扫描globals()字典,并用您要查找的值提取变量:

1
2
3
4
5
6
7
a=1
b="2"
c=2
d=2
e="2"

print([k for k,v in globals().items() if v=="2"])

结果:

1
['e', 'b']

使用locals()的当地人也是如此。要测试局部变量和全局变量,请同时链接dict项并使用set,因为值根据范围重复:

[cc lang="python"]k for k,v in itertools.chain(locals().items(),globals().items())if v=="2