Python 如何在元组中获取元组的名称
假设我有:Python 如何在元组中获取元组的名称,python,Python,假设我有: a = (1,2,3,4,5) b = (2,4,5,6,7) c = (a,b) 其中a、b和c是元组。我怎样才能得到“a”和“b”的名字? 我试着: for x in c: print(type(x).__name__) 但是它给了我tuple这个pythonvarname包允许您检查变量名。也许这对你有帮助。您可以通过pip install varname获得它。它的GitHub是,其中的自述文件提供了使用示例 编辑:事实上,对于您的用例,@chepner给出的注释
a = (1,2,3,4,5)
b = (2,4,5,6,7)
c = (a,b)
其中a、b和c是元组。我怎样才能得到“a”和“b”的名字?
我试着:
for x in c:
print(type(x).__name__)
但是它给了我tuple这个
pythonvarname
包允许您检查变量名。也许这对你有帮助。您可以通过pip install varname
获得它。它的GitHub是,其中的自述文件提供了使用示例
编辑:事实上,对于您的用例,@chepner给出的注释是正确的。我将保留这个答案,以防该包对试图为不同情况获取变量名的人有用,因为它可以处理例如
a
和b
本身。但是@chepner准确地解释了为什么从“c”中提取“a”和“b”是不可能的。强制性链接到这里有一个微妙的区别。元组没有名称;它可能有一个(或多个)引用它的名称,但对象不跟踪这些名称;c=(a,b)?您希望c
中的名称是什么?a
和b
不是给元组的名称,相反,元组被分配给这些名称。元组本身与这些名称没有任何联系。你能改用dict
吗?例如:c={“a”:a,“b”:b}
如果您只需要值,只需使用c.values()
。您的循环将是:对于k,c中的v:print(k)
使用k键(名称)和v值(在本例中为元组)。除了这是一个糟糕的想法之外,python varname
实际上并没有做您认为它做的事情。它基于AST检查,因此您不能对stuff:print(nameof(thing))中的东西执行类似于的操作,并获取列表中东西的“原始”名称。每次你都会得到“东西”
。