如何在不导入任何函数的情况下减少嵌套循环的处理时间?我的程序非常快,但编写矩阵花了很长时间。我尝试使用range
和我在网上找到的其他建议,但它仍然是一样的。
for i in matrix:
string = ''
for j in i:
if j not in path and j != 'N':
string += '_'
elif j in path and j != 'N':
string += '+'
else:
string += 'N'
f.write(string+"\n")
谢谢
答案 0 :(得分:1)
如果path
是字符串或列表,您可以将其转换为一组以便更快地查找:
path_set = set(path)
接下来,您可以使用join
函数结合生成器表达式来避免重复的字符串连接:
output = ''.join('N' if j=='N' else '+' if j in path_set else '_'
for i in matrix
for j in i)
另请注意,通过重新排序条件,您可以避免必须进行两次path
测试;另外,通过首先检查'N'
(便宜得多),您有时可以完全跳过它。