来自字典的pyglet图像资源

时间:2014-01-12 09:24:54

标签: python image resources pyglet

我有关于pyglet图像资源定义的问题。

如果我有很多图片,我可以在字典中描述它们并使用for循环制作图像吗?

快捷方式:

images = {'pic1':'pic1.jpg',
          'pic2':'pic2.jpg',
          ...}

for (name, val) in images.items():
    # this is correct code
    name = pyglet.resource.image(val)

正常方式:

image1 = pyglet.resource.image("image1.jpg")
image2 = pyglet.resource.image("image2.jpg")
...

换句话说,我想使用'name'作为变量的名称,并将此变量声明为playget.resource.image(val),其中val是image的名称。

2 个答案:

答案 0 :(得分:2)

以下将更有效地使用Dictionary Comprehension和生成器方法iteritems(如果使用python 2.x):

{key: pyglet.resource.image(value) for k,v in images.iteritems()}

或者如果您有命名模式('pic1' =>' pic1.jpg'等):

{'pic%s' % index: pyglet.resource.image('pic%s.jpg' % index) for index in xrange(1, 1000)}

答案 1 :(得分:0)

我认为找到解决方案,可能不是最好的,python不是我强大的一面,如果有人有更好的方法让我们分享它!
所以这对我有用:

for(key,value)in images.iteritems():
vars()[key] = pyglet.resource.image(value)