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

我发现了几个主题,其中讨论了在循环中动态创建单个变量是不好的做法,最好使用字典。


就我而言,我不需要动态创建它们,我想在循环中访问它们。


我不想为它们使用字典,因为这些变量在代码中的很多地方都使用,并且仅在一个地方需要这种动态访问。


想法示例:


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'

    # I want values of elements with such names here

    print(elm_pos, elm_vel)


# Desired output:

# (1, 100)

# (10, 5)


米脂
浏览 314回答 3
3回答

慕标5832272

只需使用globals()字典,将key作为变量名即可。这些键的值将是这些变量的实际值。car_pos = 1; man_pos = 10car_vel = 100; man_vel = 5for elm in ['car', 'man']:    elm_pos = elm + '_pos'    elm_vel = elm + '_vel'    print(globals()[elm_pos], globals()[elm_vel])

慕妹3146593

同意kindall所说的一切。但是,您可以尝试使用命名元组来执行非字典路由...from collections import namedtupledata = namedtuple('data',('pos','vel'))car = data(1,100)man = data(10,5)for elm in (car,man):    print(elm.pos,elm.vel)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python