我有关于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的名称。
答案 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)