为了账号安全,请及时绑定邮箱和手机立即绑定

使用动态名称访问变量的值

使用动态名称访问变量的值

米脂 2020-02-02 15:06:50
我发现了几个主题,其中讨论了在循环中动态创建单个变量是不好的做法,最好使用字典。就我而言,我不需要动态创建它们,我想在循环中访问它们。我不想为它们使用字典,因为这些变量在代码中的很多地方都使用,并且仅在一个地方需要这种动态访问。想法示例:car_pos = 1; man_pos = 10car_vel = 100; man_vel = 5for elm in ['car', 'man']:    elm_pos = elm + '_pos'    elm_vel = elm + '_vel'    # I want values of elements with such names here    print(elm_pos, elm_vel)# Desired output:# (1, 100)# (10, 5)
查看完整描述

3 回答

?
慕标5832272

TA贡献1966条经验 获得超4个赞

只需使用globals()字典,将key作为变量名即可。这些键的值将是这些变量的实际值。


car_pos = 1; man_pos = 10

car_vel = 100; man_vel = 5


for elm in ['car', 'man']:

    elm_pos = elm + '_pos'

    elm_vel = elm + '_vel'


    print(globals()[elm_pos], globals()[elm_vel])


查看完整回答
反对 回复 2020-02-02
?
慕妹3146593

TA贡献1820条经验 获得超9个赞

同意kindall所说的一切。但是,您可以尝试使用命名元组来执行非字典路由...


from collections import namedtuple

data = namedtuple('data',('pos','vel'))

car = data(1,100)

man = data(10,5)



for elm in (car,man):

    print(elm.pos,elm.vel)


查看完整回答
反对 回复 2020-02-02
  • 3 回答
  • 0 关注
  • 311 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信