Python中的快捷方式用于使用变量进行重复操作?

gam*_*age 2 python performance action object shortcut

我想知道是否有一种方法可以使用Python以更短的方式表达以下代码.有placedWall,placedFlyer,placedSpring,和placedDiamonds.而且,placedWallList,placedFlyerList,placedSpringList,和placedDiamondsList.我想这样做是因为我要添加更多具有相同重复操作的对象,这将使我的代码不必要地长.

for placedWall in placedWallList:
    if placedWall.rect.collidepoint(mousePos):
        placedsprites.remove(placedWall)
        placedWallList.remove(placedWall)
for placedFlyer in placedFlyerList:
    if placedFlyer.rect.collidepoint(mousePos):
        placedsprites.remove(placedFlyer)
        placedFlyerList.remove(placedFlyer)
for placedSpring in placedSpringList:
    if placedSpring.rect.collidepoint(mousePos):
        placedsprites.remove(placedSpring)
        placedSpringList.remove(placedSpring)
for placedDiamonds in placedDiamondsList:
    if placedDiamonds.rect.collidepoint(mousePos):
        placedsprites.remove(placedDiamonds)
        placedDiamondsList.remove(placedDiamonds)
Run Code Online (Sandbox Code Playgroud)

jon*_*rpe 5

只需迭代列表:

for item_list in (placedWallList, placedFlyerList, placedSpringList, placedDiamondsList):
    for item in item_list:
        if item.rect.collidepoint(mousePos):
            placedsprites.remove(item)
            item_list.remove(item)
Run Code Online (Sandbox Code Playgroud)

但是请注意,最后一行在迭代时改变列表的长度,这是一个非常糟糕的主意!这将导致跳过刚删除的项目的项目,并可能导致IndexError列表末尾的项目.