Python--找出字符串中出现次数最多的字符及其出现的次数

方法一:

1、循环遍历列表或字符串,如果字符在字典中则值加1,如果不在则创建(key,value)
2、找到字典中,最大的value值
3、根据最大的value值,找对应的key值,打印出出现次数最多的字符

    str = "abcabcabcaaab"
    dict = {}
    # 循环遍历列表或字符串,如果不在则创建(key,value),如果字符在字典中则值加1
    for i in str:
        if i not in dict:
            dict[i] = 1
        else:
            dict[i] += 1
    # 找到字典中,最大的value值
    temp = max(dict.values())
    # 根据最大的value值,找对应的key值,打印出出现次数最多的字符
    for k, v in dict.items():
        if v == temp:
            print("出现最多的是:", k, "出现了:", v)

方法二:

1、用字典键不能重复的特点,就可以除去重复的字符,把字符转挨个填入字典中
2、用列表方便取值的特点,把字典中的元素添加到列表中
3、冒泡排序,把出现次数最多的字符放到第一
4、返回第一个字符,就是要找的次数最多的字符

    str = "abcabcabcaaab"
    d = {}
    # 用字典键不能重复的特点,就可以除去重复的字符,把字符转挨个填入字典中
    for i in str:
        count = str.count(i)
        d[i] = count
    #  用列表方便取值的特点,把字典中的元素添加到列表中
    list = []
    for i, v in d.items():
        list.append((i, v))
    # 冒泡排序,把出现次数最多的字符放到第一
    for i in range(len(list) - 1):
        for j in range(i + 1, len(list)):
            if list[i][1] < list[j][1]:
                list[i], list[j] = list[j], list[i]
    # 返回第一个字符,就是我们要找的次数最多的字符
    print("出现最多的是:", list[0][0], "出现了:", list[0][1])

拓展:字典中常用的方法

1、get(key,default = None):

返回指定的键的值,如果键不存在,则返会 default 的值

dic = {'a':1,'b':2,'c':3,'d':4}
print(dic.get('b'))
# 2
print(dic.get('e',5))
# 5

2、items( ):

返回键值对的可迭代对象,使用 list 可转换为 [(键,值)] 形式

dic = {'a':1,'b':2,'c':3,'d':4}
print(dic.items())
# dict_items([('a', 1), ('b', 2), ('c', 3), ('d', 4)])
print(list(dic.items()))
# [('a', 1), ('b', 2), ('c', 3), ('d', 4)]

3、keys( ):

返回一个迭代器,可以使用 list() 来转换为列表

dic = {'a':1,'b':2,'c':3,'d':4}
print(dic.keys())
# dict_keys(['a', 'b', 'c', 'd'])
print(list(dic.keys()))
# ['a', 'b', 'c', 'd']

4、values( ):

返回一个可迭代对象,使用 list 转换为字典中 值 的列表

dic = {'a':1,'b':2,'c':3,'d':4}
print(list(dic.values()))
# [1,2,3]

5、update(字典对象):

将字典对象更新到字典中

dic = {'a':1,'b':2,'c':3,'d':4}
dic_two = {'f':6}
dic.update(dic_two)
print(dic)
# {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'f': 6}

你可能感兴趣的:(Python,python)