Python - 附加到名称由字符串给出的数组

时间:2016-12-21 16:29:06

标签: python arrays python-3.x pygame

我创建了多个数组并希望向它们添加内容,但是用户应该选择要附加到哪个数组。

所以澄清一下我的意思:(下面的代码是错误的,但我不知道怎么写它。)

def loadImages(self,pName,pAnz,pScaleX,pScaleY):
    for i in range(0,pAnz):
        tux = pygame.transform.scale(pygame.image.load('./images/%s.png'),(pScaleX,pScaleY) % pName)
        self.%s.append(tux) %pName
    length_array = len(self.%s) %pName
    return length_array

编辑:

@Jim Fasarakis-Hilliard

我正在尝试在PyGame中编程。 因此,我必须将我想要使用的所有图像初始化。

为了不扩展它,我想创建一个函数,你可以轻松地附加到你想要的任何数组,所以我不必每次想要新图片时都创建一个新函数。

我的代码看起来像这个atm。:

class MyT4TempGen {

     public string run() {
          inside here is code that uses a string builder to build up all your <# #> tags into one big statement
     }

     from here down all your <#+ #> tags are added

     namespace Learn {
        public class Converter {

        }
     } 

}

3 个答案:

答案 0 :(得分:2)

您可以使用globals,将变量名称的字符串传递给函数:

def test(pName):
    globals()[pName].append(1) 

test('y')
当然,这取决于全球范围内存在的名称。

答案 1 :(得分:2)

您可以将数组放入字典中。假设有一个固定数量的数组,代码看起来像这样:

arrays = {}
arrays['x'] = []
arrays['y'] = []

def test(pName):
    arrays[pName].append(1)

test('y')

您需要检查用户输入,因为不是字典中的键的pName将引发键异常。如果您希望数组是动态的,您可以这样做:

arrays={}
def test(pName):
    if pName not in arrays.keys():
       arrays[pName]=[]
    arrays[pName].append(1)

test('y')

答案 2 :(得分:1)

如果您只想将对象保存到不同的“名称空间”,则可以使用词典:

lists = {
   "x": [],
   "y": []
}

def test(pName):
    lists[pName].append(1)

test("y")

比使用全局或类似物更清洁,更容易理解恕我直言。