方法一:
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}