有人知道打印此变量的更好选择吗?
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}')
我正在寻找更快地打印一些变量。我使用的代码是:
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}')