我读过Python的一个关键信念是它是扁平的>;嵌套的。但是,如果我有几个变量在计数,那么多个for循环的替代方案是什么? 我的代码用于计算网格和,如下所示:
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中被认为是许多嵌套循环的内容(我以前肯定见过两个嵌套循环)。其次,如果嵌套太多,那么编写此代码的另一种方法是什么?
您应该使用
sum
函数。当然,如果你用一个变量来隐藏它,你就不能这样做,所以我把它改成了my_sum
上述输出13260,用于在第一行代码中创建的特定网格。它使用
sum()
三次。最里面的总和是grid[x][y: y + 4]
中的数字加上问题代码中显示的稍微奇怪的初始值sum = 1
。中间的总和将17个可能的y值相加。外部总和将中间值与可能的x值相加。如果网格元素是字符串而不是数字,则替换
sum(grid[x][y: y + 4])
使用
sum(int(n) for n in grid[x][y: y + 4]
可以使用字典显著优化性能
这是另一个例子:
相关问题 更多 >
编程相关推荐