Von this answer, Sie so etwas wie diese
>>> 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'
That being said tun könnte, ist dies nicht ein guter Weg, es zu tun. Python-Objekte haben keine Namen. Stattdessen Namen haben Objekte. Eine kleine Ausnahme ist das __name__
Attribut der Funktionen, aber die Regel ist die gleiche - wir speichern nur den Namen als Attribut. Das Objekt selbst bleibt ungenannt.
Die obige Methode missbraucht die locals()
Methode. Es ist nicht ideal. Ein besserer Weg wäre, Ihre Daten in ein Wörterbuch umzuwandeln. Ein Wörterbuch ist speziell eine Gruppe von benannten Werten.
{
'street38': (4,6,7,12,1,0,5)
}
Der Punkt eines Wörterbuchs ist diese Schlüssel/Wert-Beziehung. Es ist eine Möglichkeit, einen Wert basierend auf einem Namen nachzuschlagen, was genau das ist, was Sie wollen. Das andere Problem, auf das Sie stoßen können (je nachdem, was Sie hier tun), ist, was passiert, wenn es Tausende von Straßen gibt. Sicherlich möchten Sie nicht auch Tausende von Variablennamen schreiben.
Was ist falsch mit 'plt.title (" street_38 ")'? Das ist eine ernste Frage. Bitte erklären Sie, warum der wörtliche Name für Sie nicht nützlich ist, da dies den Menschen hilft, eine gute Lösung für Ihr Problem zu finden. –
[Klingt nicht nach einer guten Idee ...] (http://stackoverflow.com/questions/544919/can-i-print-original-variables-name-in-python) – Curmudgeon
Wie wäre es mit dieser Problemumgehung: ' street_38 = ('street_38', 4, 6, 7, 12, 1, 0, 5) '? Auf diese Weise ist 'street_38' das erste Element Ihres Tupels. –