有人知道打印此变量的更好选择吗?

Someones know a better option to print this variables?

我正在寻找更快地打印一些变量。我使用的代码是:

A_PR=3
B_PR=4
C_PR=6
print('the value of the model A is:', A)
print('the value of the model B is:', B)
print('the value of the model C is:', C)

我想用 for 循环,但我无法让它工作。

您可以像这样使用字符串格式:

A_PR=3
B_PR=4
C_PR=6

print('Model A: {} \nModel B: {}\n Model C: {}'.format(A_PR, B_PR, C_PR))

或者您可以将这些值嵌入到数组中并循环遍历该数组。使用 ASCI 值,您可以打印 A - Z 模型结果

A_PR=3
B_PR=4
C_PR=6
model_results = [A_PR, B_PR, C_PR]

for idx, result in enumerate(model_results):
    print('Model {}: {}'.format(chr(idx + 65), result))

输出:

Model A: 3
Model B: 4
Model C: 6

如果你真的想这样做,你将不得不通过存储在另一个变量中的名称来访问这些变量。有人称之为“动态变量名”。如果您真的想要这样做,一个选择是使用globals():

for x in ['A', 'B', 'C']:
    print(f'The value of the model {x} is:', globals()[x + '_PR'])

# The value of the model A is: 3
# The value of the model B is: 4
# The value of the model C is: 6

推荐:参见How do I create variable variables?

因此,更好的选择之一可能是使用可迭代数据类型,例如 dict:

models = {'A': 3, 'B': 4, 'C': 6}

for x in ['A', 'B', 'C']:
    print(f'The value of the model {x} is: {models[x]}')

可以使用 items 进一步简化,虽然我不是这个的忠实粉丝,如果我想保留顺序。

models = {'A': 3, 'B': 4, 'C': 6}

for k, v in models.items():
    print(f'The value of the model {k} is: {v}')

dict 确实保留了顺序,但在我看来,我认为 dict 在概念上没有被排序。

    model_dict = {'A':3, 'B':4, 'C':6,}
    for k,v in model_dict.items():
        print(f"the value of model {k} is: {v}")

这是我使用 python f strings and a dictionary

提出的一个简单解决方案

像这样的东西应该可以作为带有 for 循环的小字典使用。只需解压键和值。

PR = {
    "A_PR": 3, "B_PR" :4 , "C_PR":6,
}

for k,v in PR.items():
    print(f'the value of the model {k} is: {v}')