获取变量值的最佳方法

2024-09-27 07:28:51 发布

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

我有很多变量

myvar1='say1'
myvar2='say2'
myvar3='say3'
myvar4='say4'
myvar4='say5'

为了打印它们,我使用了for循环

for i in (range 1,6):
  print('{}-{}'.format(i,vars()['myvar'+str(i)]))

这就产生了

1-say1
2-say2
3-say3
4-say4
5-say5

我的问题很简单,这是最好的方法吗(我是说var()[]部分)。我倾向于使用这种东西一点(不只是打印变量值…),我只是觉得它看起来很时髦。我一直在四处寻找其他的例子,但我真的没有找到任何。那么,有没有更好的办法?你知道吗

所以最终我想知道从变量名中获取值的最佳方法是什么?你知道吗


Tags: 方法informatforrangeprintmyvar1myvar2
2条回答

So, is there a better way

当然,为什么不直接使用列表,或者如果你需要更多的estoric编号,使用字典(或者如果顺序很重要,使用OrderedDict`)?你知道吗

带列表的示例代码

>>> myvar = ['say1','say2','say3','say4','say5']
>>> for index, var in enumerate(myvar, 1):
    print "{}-{}".format(index ,var)


1-say1
2-say2
3-say3
4-say4
5-say5

使用OrderedDict的示例代码

>>> from collections import OrderedDict
>>> myvar = OrderedDict(
            [('a','say'),
             ('b','say2'),
             ('c','say3'),
             ('d','say4'),
             ('e','say5')])
>>> for key, value in myvar.items():
    print "{}-{}".format(key,value)


a-say
b-say2
c-say3
d-say4
e-say5

根据OP的评论,最好的方法是使用Pythondict字典)的键/值对。你知道吗

示例:

data = {
    "1": "say1",
    "2": "say2",
    "3": "say3",
}

然后得到相同的输出:

for k, v in data.items():
    print("{}-{}".format(k, v))

输出:

1-say1
2-say2
3-say3

相关问题 更多 >

    热门问题