在python中将字符串转换为变量?

2024-04-26 20:20:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我对python和编程都很陌生,一直在尝试如何做到这一点。

以下是我需要的帮助:

y=0
x=2
p01='hello'
p02='bye'

print('p'+(str(y)+str(x)))

输出当然是'p02',但是我怎样才能使输出代替p02的值('bye')

希望这有意义,我期待任何答案。


Tags: 答案hello编程意义byeprintp01str
1条回答
网友
1楼 · 发布于 2024-04-26 20:20:52

你可以用eval()

它对存储在字符串中的表达式求值,就像它是Python代码一样。

在你的例子中,'p'+(str(y)+str(x))变成了'p01',所以它得到了表达式p01的结果,这当然是'bye'

print(eval('p'+(str(y)+str(x))))

但是请注意,你不应该这样做-几乎总是有更好的方法。请阅读Why is using 'eval' a bad practice?

那么,我们能做什么呢?

globals()为我们提供了一个Python程序中所有全局变量的字典,它们的名称是字符串索引,值是字典值。因此,我们可以简单地:

globals()['p'+(str(y)+str(x))]

计算结果为globals()['p01'],得到全局p01的值,即bye

再说一遍,这是解决更大问题的办法

重新构造代码。把它们做成一个数组或字典,并得到它的索引。仔细考虑一下为什么要这么做,并更改代码,这样就不必这么做了。在eval看起来是最佳选择的情况下,这是很糟糕的。

相关问题 更多 >