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

2024-10-06 08:50:56 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我不知道如何解释它,但如果你看看这段代码,你可能会有所帮助

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()),
            }

如果有人能帮忙的话,我会非常感激的,我已经在这上面呆了一段时间了


Tags: nameselfreturndefbackgroundtowerthompsonmg
1条回答
网友
1楼 · 发布于 2024-10-06 08:50:56

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

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()

相关问题 更多 >