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)
只需迭代列表:
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
列表末尾的项目.
归档时间: |
|
查看次数: |
50 次 |
最近记录: |