Skip to main content
 首页 » 编程设计

python之函数式编程方法,或大多数 Pythonic 方法,一次使用两个相邻变量遍历数组

2025年05月04日24thcjp

考虑以下问题:给定一个整数数组,返回数组递减的次数。所以 [3,2,1] 减少了两次(在 3 和 2); [1,2,3,4,5,4,3,2,1] 减少了 4 次(在 5, 4, 3, 2),而 [1] 没有减少。

在任何语言的 for 循环中解决这个问题都非常容易:

int result = 0; 
for (int i = 0; i < array.length - 1; i++) { 
    if (array[i] > array[i+1]) result += 1; 
} 

我只知道如何使用 for 或 while 循环并跟踪索引来解决这个问题。我不知道使用像 map 这样的方法或使用列表或理解的任何功能方式,但这是我希望存在的。

请您参考如下方法:

一个很好的方法是使用 zip结合sum的方法:

sum(a > b for a, b in zip(array, array[1:]))