Python 3.x 在循环python中打印变量

Python 3.x 在循环python中打印变量,python-3.x,for-loop,printf,Python 3.x,For Loop,Printf,我希望输出是变量,而不是它的值。下面的代码将输出为 “什么” “为什么” “何时” “哪里” 但我希望输出为 A. B C d 这是不可能的。如果您还想记录姓名,应使用dict: words = { "a": "what", "b": "why", "c": "when", "d": "where" } for x in words.k

我希望输出是变量,而不是它的值。下面的代码将输出为 “什么” “为什么” “何时” “哪里” 但我希望输出为 A. B C d


这是不可能的。如果您还想记录姓名,应使用dict:

words = { "a": "what", "b": "why", "c": "when", "d": "where" }

for x in words.keys():
    print(x)
打印变量名的唯一方法是3.8中的新调试格式选项:

print(f"{x=}")
这会导致类似于

x = 5


这回答了你的问题吗?
x = 5
import inspect


def retrieve_variable_name(value):
    for var, val in inspect.currentframe().f_back.f_locals.items():
        if val is value:
            return var


a = "what"
b = "why"
c = "when"
d = "where"

A = [a, b, c, d]
for x in A:
    print(retrieve_variable_name(x))