在lis中存储变量名

2024-05-15 11:02:34 发布

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

我有以下清单:

lst_gws = ["gw1", "gw2", "gw3"]

gw1 = ["gw1-123", "gw1-234"]
gw2 = ["gw2-445", "gw2-332"]
gw3 = ["gw3-257", "gw3-321"]

是否可以循环浏览列表并打印出每个列表的值,例如:

for i in lst_gws:
    print i

但打印的是实际值而不是名称


Tags: in名称列表forprintgwslstgw2
3条回答

你可以做:

for i in lst_gws:
    print(locals()[i])

它将按预期打印出来(locals()允许您访问任何局部变量):

>>> lst_gws = ["gw1", "gw2", "gw3"]
>>>
>>> gw1 = ["gw1-123", "gw1-234"]
>>> gw2 = ["gw2-445", "gw2-332"]
>>> gw3 = ["gw3-257", "gw3-321"]
>>> for i in lst_gws:
...     print(locals()[i])
...
['gw1-123', 'gw1-234']
['gw2-445', 'gw2-332']
['gw3-257', 'gw3-321']

您可以使用locals()globals()访问局部和全局变量字典

它们是字典,其中键是变量的名称,值是它的值

x = 3
y = 2
z = [1, 2, 3]
vars = ["x", "y", "z"]

for name in vars:
    print(locals()[name])

用听写器怎么样

lst_gws = {
    "gw1" : ["gw1-123", "gw1-234"],
    "gw2" : ["gw2-445", "gw2-332"],
    "gw3" : ["gw3-257", "gw3-321"],
}

for name in lst_gws:
    print lst_gws[name]

相关问题 更多 >