Quelqu'un a suggéré de remplacer mon:Pour plus d'efficacité en boucle lors de l'utilisation d'énumérer ou d'autres fonctions
for m in hazardflr:
safetiles.append((m, step))
i = 0
avec une approche plus raisonnable, comme:
for i, m in enumerate(hazardflr):
safetiles.append((m, step))
s'il y a un moyen de rendre plus efficace,
Je vois maintenant comment cela sauve les lignes de code et dit la même chose. Je ne savais pas à propos de la fonction enum()
. Ma question est la suivante: y a-t-il d'autres modifications que je peux faire pour rendre ce code plus efficace et plus efficace?
def missingDoor(trapdoor, roomwidth, roomheight, step):
safezone = []
hazardflr = givenSteps(roomwidth, step, True)
safetiles = []
for i, m in enumerate(hazardflr):
safetiles.append((m,step))
while i < len(safetiles):
nextSafe = safetiles[i]
if knownSafe(roomwidth, roomheight, nextSafe[0], nextSafe[1]):
if trapdoor[nextSafe[0]/roomwidth][nextSafe[0]%roomwidth] is "0":
if nextSafe[0] not in safezone:
safezone.append(nextSafe[0])
for e in givenSteps(roomwidth, nextSafe[0], True):
if knownSafe(roomwidth, roomheight, e, nextSafe[0]):
if trapdoor[e/roomwidth][e%roomwidth] is "0" and (e,nextSafe[0]) not in safetiles:
safetiles.append((e,nextSafe[0]))
i += 1
return sorted(safezone)
merci d'avoir attrapé ça !!! Je suppose que quand je itérais le code, je n'ai pas pris en faisant une variable dans le compte – SteveZrg
où est-ce que je mettrais le set_var dans le code alors? dois-je dire "item dans set_ver" ??? – SteveZrg
@SteveZrg pas besoin d'introduire 'set_ver', j'ai édité ma réponse: vous devez changer l'initialisation' safezone' à 'safezone = set()' –