Skip to main content
 首页 » 编程设计

python之查找列表中数字后跟较大数字的次数

2025年05月04日21飞鱼

我有这个函数来查找列表中一个数字后跟一个较大数字的次数。是否有另一种更“pythonic”的方式可以做到这一点?我正在使用 Python 3.7.0。

提前致谢。

def find_greater_numbers(arr): 
    count = 0 
    i = 0 
    j = 1 
    while i < len(arr): 
        while j < len(arr): 
            if arr[j] > arr[i]: 
                count += 1 
            j+=1 
        j = i+1 
        i+=1 
    return count 
 
find_greater_numbers([6,1,2,7]]) # returns 4 

请您参考如下方法:

有点不清楚你的意思是立即关注,还是在任何以后的索引处关注

在第一种情况下,这个衬里:

sum(x < y for x,y in zip(arr[:-1],arr[1:])) # answer is 2 

第二个,这个:

sum(any(x < y for y in arr[i:]) for i,x in enumerate(arr)) # answer is 3 

如果你想计算确切的此类对的数量(就像你的实际代码似乎在做的那样):

sum(x < y for i,x in enumerate(arr) for y in arr[i:]) # answer is 4