替代在 Python 中嵌套 for 循环 [英] Alternative to nesting for loops in Python
问题描述
我读到 Python 的一个关键信念是扁平 > 嵌套.但是,如果我有几个变量在计数,那么多个 for 循环的替代方法是什么?我的代码用于计算网格总和,如下所示:
I've read that one of the key beliefs of Python is that flat > nested. However, if I have several variables counting up, what is the alternative to multiple for loops? My code is for counting grid sums and goes as follows:
def horizontal():
for x in range(20):
for y in range(17):
temp = grid[x][y: y + 4]
sum = 0
for n in temp:
sum += int(n)
print sum # EDIT: the return instead of print was a mistype
在我看来,它嵌套过多.首先,Python 中的许多嵌套循环被认为是什么(我之前肯定见过 2 个嵌套循环).其次,如果嵌套过多,那么编写此代码的替代方法是什么?
This seems to me like it is too heavily nested. Firstly, what is considered to many nested loops in Python ( I have certainly seen 2 nested loops before). Secondly, if this is too heavily nested, what is an alternative way to write this code?
推荐答案
from itertools import product
def horizontal():
for x, y in product(range(20), range(17)):
print 1 + sum(int(n) for n in grid[x][y: y + 4])
您应该使用 sum
函数.当然,如果你用变量隐藏它,你就不能,所以我把它改成了 my_sum
You should be using the sum
function. Of course you can't if you shadow it with a variable, so I changed it to my_sum
这篇关于替代在 Python 中嵌套 for 循环的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!