📜  Python - 连续元素最大频率(1)

📅  最后修改于: 2023-12-03 15:33:57.418000             🧑  作者: Mango

Python - 连续元素最大频率

在Python中,我们经常需要查找列表或数组中出现频率最高的连续元素。例如,给定列表[1, 2, 2, 3, 3, 3, 4, 4, 4, 4],出现频率最高的连续元素是4,因为它出现了4次。

以下是如何在Python中编写一个函数来查找出现频率最高的连续元素的示例代码:

def max_consecutive_frequency(arr):
    max_freq = 0
    max_elem = None
    curr_freq = 1
    
    for i in range(1, len(arr)):
        if arr[i] == arr[i-1]:
            curr_freq += 1
        else:
            if curr_freq > max_freq:
                max_freq = curr_freq
                max_elem = arr[i-1]
            curr_freq = 1
    
    if curr_freq > max_freq:
        max_freq = curr_freq
        max_elem = arr[-1]
    
    return max_elem

在上面的示例代码中,我们使用一个for循环来迭代列表中的所有元素。在每个元素处,我们检查它是否与前一个元素相同。如果是,我们增加当前频率,否则我们将当前频率重置为1并检查我们是否找到了新的最高频率。

该函数返回出现频率最高的元素。如果有多个元素都出现了最大频率,该函数只返回其中一个元素。

以下是一些示例用法:

>>> max_consecutive_frequency([1, 2, 2, 3, 3, 3, 4, 4, 4, 4])
4
>>> max_consecutive_frequency(['a', 'a', 'b', 'c', 'c', 'c', 'c', 'd'])
'c'
>>> max_consecutive_frequency([1, 1, 2, 3, 4, 4, 4, 4, 4])
4

在上面的示例中,我们使用max_consecutive_frequency函数来查找出现频率最高的元素。该函数能够处理不同类型的列表和数组,包括数字和字符串等。