开发者学堂课程【Python 入门 2020年版:字典的练习】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/639/detail/10316
字典的练习
目录:
一、第四种遍历方式
二、代码演示
三、代码讲解
一、第四种遍历方式
#print(person.items())
#dict_item([('name', ' zhangsan'), ('age', 18),('heigt')]
# for item in person. items():
#列表里的元素是元组,把元组当做整体进行遍历
#print(item[0], '=', item[1])
for k, v in person. items():
print(k, '=',v)
运行结果:
name = zhangsan
age= 18
height = 180cm
Process fini shedwithexit code 0
二、代码演示
chars =[' a ',' c ',' x ',' d ',' p ',' a ',' c ',' a ',' c ',' a ']
#'a'->3 'c'->2 'х'->1 'd'->1 'p' ->2
char _ count ={ }
for char in chars :
if char in char _ count :
#print('字典里已经有了这个字符%s' % char)
# char _ count [ char ] +=1
# else :
print('字典里没有这个字符%s' % char)
运行结果:
字典里没有这个字符 a
字典里没有这个字符 c
字典里没有这个字符 x
字典里没有这个字符 d
字典里没有这个字符 p
字典里没有这个字符 a
字典里没有这个字符 p
字典里没有这个字符 a
字典里没有这个字符 c
# char _ count [ char ]=1
if char not in char _ count :
char _ count [ char ]= chars . count ( char )
//等于计算一下次数
# print ( char _ count )
#{' a ':3,' c ':3,‘ x ':1,‘ d ':1,' p ':1}
Process finished with exit code 0
vs = char _ count . values ()
#可以使用内置函数 max 取最大数
max _ count = max ( vs ) #4
//a
Process finished with exit code 0
for k , v in char _ count . items ():
if v == max _ count :
print ( k )
三、代码讲解
//练习:统计每一个字符出现的次数。
//数据应该是什么结构,如何统计出现次数最多,应该用什么方法。//统计出现次数最多的,首先要做一件事,统计每个字符出现的次数,
统计结果如下:
#'a'->3 'c'->2 'х'->1 'd'->1 'p' ->2
思考:数字和它出现的次数应该怎么匹配才是正确的,如何表示数据?应该用哪种数据来保存数据?
解答:使用字典可以解决以上的问题。
//只需把字符和它对应的这个次数组成一个字典就行了,首先创建一个字典,char _ count ={ },字符和它的次数组成了一个空字典,接下来做的工作是遍历里边的每一个数据,
代码如下:
for char in chars :
print( char)
//最终的问题,往空字典放数据,逻辑是用 if语句,先判断数据是否在 char _ count ,如果在字典里则 print('字典里已经有了这个字符%s' % char),否则 print('字典里没有这个字符%s' % char)
//字典里没有这个字符时,
可以使用代码:
char _ count [ char ]=1
直接把字符放字典里。
//字典里有这个字符,原数字加一,代码如下:
char _ count [ char ] +=1
//如果字典里没有这个字符,判断是否存在,代码如下:
#{' a ':3,' c ':3,‘ x ':1,‘ d ':1,' p ':1}
//方法:只需拿到个数系数,代码如下:
if char not in char _ count :
char _ count [ char ]= chars . count ( char )
//这个方法更好,更快捷一些,不需要手动添加,如果数字不在里边就直接记一下次数。
//如何取出统计次数最多的数据?
//现在的情况最多的是有两个数据。
//方法:使用 MAX函数,把所有的数字都取到,取到之后,取这个所有值里最大的一个数啊,最大的数是3。
//假设第0个是最大数,可以使用内置函数 max 取最大数
能够取出这个最大数是三。
//出现最多的次数是哪个数据呢?因为 A和 C都是三次。
如果有 key找 value直接用中括号就能找到,如果没有 key,使用遍历。
代码如下:
for k , v in char _ count . items ():
if v == max _ count :
print ( k )
//运行代码,结果是打印出 A,C。所以 A和 C是出现次数最多的。
//如果再加 A,结果只会打印 A,因为 A现在是四个了,最大数就是4个。