0
有人建议更换我:For循环效率,当使用枚举或其他功能
for m in hazardflr:
safetiles.append((m, step))
i = 0
一个更合理的方法,如:
for i, m in enumerate(hazardflr):
safetiles.append((m, step))
如果有一种方法可以让这个更有效,
我现在看到这是如何保存代码行,并说同样的事情。我不知道enum()
函数。我的问题是现在是否有任何其他修改我可以做,使这个代码更有效率和行保存?
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)
谢谢你抓到!我想当我迭代代码时,我没有考虑将它变成一个变量 – SteveZrg
在哪里可以将set_var放在代码中呢?我是否必须说完整的“item in set_ver”? – SteveZrg
@SteveZrg无需引入'set_ver',我编辑了我的答案:您应该将'safezone'初始化更改为'safezone = set()' –