需要帮助从Python中的列表和函数创建字典吗

需要帮助从Python中的列表和函数创建字典吗,python,list,function,dictionary,Python,List,Function,Dictionary,因此,我不知道如何准确地解释它,但如果你看一下这段代码,你可能会有所帮助 class tower: def __init__(self, name, namex, namey, x, y, width, height, nameimg): self.name = name self.namex = namex self.namey = namey self.x = x self.y = y s

因此,我不知道如何准确地解释它,但如果你看一下这段代码,你可能会有所帮助

class tower:
    def __init__(self, name, namex, namey, x, y, width, height, nameimg):
        self.name = name
        self.namex = namex
        self.namey = namey
        self.x = x
        self.y = y
        self.width = width
        self.height = height
        self.nameimg = nameimg

    def getname(self):
        return self.name
    def getnamex(self):
        return self.namex
    def getnamey(self):
        return self.namey
    def getx(self):
        return self.x
    def gety(self):
        return self.y
    def getwidth(self):
        return self.width
    def getheight(self):
        return self.height
    def getnameimg(self):
        return self.nameimg


background = tower("background", "backgroundx", "backgroundy", 0, 0, 1280, 720, backgroundImg)
ppsh = tower("ppsh", "ppshx", "ppshy", 1127, 140, 120, 40, ppshImg)
trenchgun = tower("trenchgun", "trenchgunx", "trenchguny", 1207, 140, 120, 27, trenchgunImg)
thompson = tower("thompson", "thompsonx", "thompsony", 1127, 120, 120, 39, thompsonImg)
colt = tower("colt", "coltx", "colty", 1, 1, 70, 46, coltImg)
mg = tower("mg", "mgx", "mgy", 1, 1, 135, 27, mgImg)

towers = [background, ppsh, trenchgun, thompson, colt, mg]

def game_loop():
    positions = {
        (background.getnamex()): (background.getx()),
        (background.getnamey()): (background.gety()),
        (ppsh.getnamex()): (ppsh.getx()),
        (ppsh.getnamey()): (ppsh.gety()),
        (trenchgun.getnamex()): (trenchgun.getx()),
        (trenchgun.getnamey()): (trenchgun.gety()),
        (thompson.getnamex()): (thompson.getx()), 
        (thompson.getnamey()): (thompson.gety()),
        (colt.getnamex()): (colt.getx()), 
        (colt.getnamey()): (colt.gety()),
        (mg.getnamex()): (mg.getx()), 
        (mg.getnamey()): (mg.gety()),
        }
如果你看下面的部分,我想写出来,这样我就不必每次都写一行,而是从上面的列表中选择。以下是我的尝试作为一个例子

towers = [background, ppsh, trenchgun, thompson, colt, mg]

def game_loop():
    for i in towers:
        positions = {
            (i.getnamex()): (i.getx()),
            (i.getnamey()): (i.gety()),
            }

如果有人能帮上忙,我将不胜感激,我已经在这个问题上纠缠了一段时间。

您可以定义一个空字典,并根据需要添加键值对

def game_loop():
    global towers
    positions={}
    for i in towers:
        positions[i.getnamex()]= i.getx()
        positions[i.getnamey()]= i.gety()
    return positions

positions=game_loop()

您可以定义一个空字典,并根据需要添加键值对

def game_loop():
    global towers
    positions={}
    for i in towers:
        positions[i.getnamex()]= i.getx()
        positions[i.getnamey()]= i.gety()
    return positions

positions=game_loop()