打印变量的名称,而不是它';Python中的s值

打印变量的名称,而不是它';Python中的s值,python,string,Python,String,我有变量 street_38 = (4,6,7,12,1,0,5) 是否有一种方法可以打印名称而不是值? 这就是我对“street_38”的兴趣所在。我想这样做是因为我正在绘制一个图形 plt.title(str(street_38) 作为标题,我得到的是值,而不是名称 谢谢,没有一个好的编程方法可以做到这一点。理想情况下,变量的名称对代码没有任何意义。它只在向程序员传达想法以便他们知道他们在使用什么时有用。从中,您可以这样做 >>> a = 1 >>>

我有变量

street_38 = (4,6,7,12,1,0,5)
是否有一种方法可以打印名称而不是值? 这就是我对“street_38”的兴趣所在。我想这样做是因为我正在绘制一个图形

plt.title(str(street_38)

作为标题,我得到的是值,而不是名称

谢谢,没有一个好的编程方法可以做到这一点。理想情况下,变量的名称对代码没有任何意义。它只在向程序员传达想法以便他们知道他们在使用什么时有用。

从中,您可以这样做

 >>> a = 1
 >>> for k, v in list(locals().iteritems()):
         if v is a:
             a_as_str = k
 >>> a_as_str
 a
 >>> type(a_as_str)
 'str'
也就是说,这不是一个好方法。Python对象没有名称。相反,名称有对象。函数的
\uuuu name\uuuu
属性是一个轻微的例外,但规则是一样的-我们只是将名称存储为属性。对象本身保持未命名

上述方法滥用了
locals()
方法。这并不理想。更好的方法是将数据重新构造为类似于字典的内容。字典就是一组命名值

{
    'street38': (4,6,7,12,1,0,5)
}

字典的要点是这种键值关系。它是一种基于名称查找值的方法,而名称正是您想要的。您可能遇到的另一个问题(取决于您在这里所做的工作)如果有数千条街道,将会发生什么。当然你不想写出数千个变量名。

plt.title(“street_38”)有什么问题?这是一个严肃的问题。请解释为什么字面名称对您没有用处,因为这将帮助人们为您的问题制定一个好的解决方案。这个解决方法怎么样:
street_38=('street_38',4,6,7,12,1,0,5)
?这样一来,
street_38
就是元组的第一个元素。听起来你使用的数据类型是错误的。因为我猜你这里有不止一条街道,所以当你在街道上迭代时,把它变成一个字典,比如
street={'street_38':(4,6,7,12,1,0,5)
(我猜您将要做的),只需打印street\u name的键值本身
,street.items()中的值:
plt.title(street\u name)
谢谢Kelvin,是的,这听起来是个非常好的主意