1. 程式人生 > >列表中元素相同個數統計以及排序

列表中元素相同個數統計以及排序

統計列表中元素出現的次數,並找出出現次數最多的元素
例子
classList = ['a','a','b','b','b','c']
def majorityCnt(classList):
    classCount = {}
    # 1 統計列表中元素出現的次數,並存儲在字典中
    for vote in classList:
        #classCount[vote] = classCount.get(vote, 0) + 1  # 可以代替下面三行程式碼
        if vote not in classCount:
            classCount[vote] = 0
        classCount[vote] += 1
    # classCount={'c': 1, 'b': 3, 'a': 2}
    # 2  根據字典中的key或者value進行排序
         #  e[0]根據key進行排序,e[1]根據value進行排序;預設為升序排序,reverse=Fault
         #  返回為元組列表的形式 [('b', 3), ('a', 2), ('c', 1)]
    sortedClassCount = sorted(classCount.items(),key = lambda e:e[1], reverse=True)
    # 3  返回出現次數最多的元素
    return sortedClassCount[0][0]

print( majorityCnt(classList))