# 字典的使用 # 字典是一个容器类,可以用来存储数据 # 列表存储数据特点:1.有序的 2.每一个数据都有一个索引,通过索引可以对数据进行查询、修改、删除 # 字典存储数据:key:value(键值对) # key 必须是不可变的,一般使用字符串作为字典中的key,也可以使用数字等不可变类型的值 # key 是唯一的,如果有多个相同key的情况,保留最后一个key对应的值 # 字典中存储的数据是没有顺序的 dict_1 = {'name':'zhangsan', 'age':22, 'phone':110, 'sex':'男', 'name':'wnagwu'} print(dict_1) # 根据key取出字典中的值 # name = dict_1['sss'] # print(name) # get(key, defalut)函数,获取字典中对应key的值 , 如果key不存在,取默认值,如果key存在,取出对应的结果 name = dict_1.get('name','0') print(name) # 向字典中添加数据 # 如果这个key不存在,添加数据,如果key存在,修改这个key对应的值 dict_1['name'] = 'lisi' dict_1['ssss'] = '4s' print(dict_1) # 根据key删除字典中的数据 del dict_1['ssss'] print(dict_1) # pop(key) key必要参数,要移出的数据对应的key s = dict_1.pop('name') print(s) # popitem() 随机从字典中取出一个键值对,并且将键值放在元组中 s = dict_1.popitem() print(s) # 删除字典中所有的键值对 # dict_1.clear() # print(dict_1) # 获取字典中所有的key keys = dict_1.keys() # 取出所有的keys for key in keys: # 根据key取出对应的值 value = dict_1[key] print('%s:%s'%(key,value)) # 获取字典中所有的value values = dict_1.values() # for循环取出所有的value for value in values: print(value) # 获取字典中所有的键值对 items = dict_1.items() # [('phone', 110), ('sex', '男')] # for 循环遍历items for item in items: # 从元组中 根据索引取出数据 key = item[0] value = item[1] print('键:%s 值:%s'%(key, value)) # 判断字典中是否拥有某个key if 'phone' in dict_1.keys(): print('有这个key') else: print('没有这个key') ''' 生成一个列表,存放100个随机整数,找出出现次数最多的数字(可能不止一个) ''' numbers = [1,2,4,25,6,32,51,53,66,1,3,77,5] # max() 取出列表中最大值 min()取出最小值 number = max(numbers) print(number) import random # 列表推导式/生成式 numbers = [random.randint(0, 100) for x in range(100)] # [最终放在列表中的数据 for循环] # number2 = [x*x for x in range(100)] result_dict = {} for num in numbers: # 获取数字在列表中出现的次数 count = numbers.count(num) # 把数字作为key,出现次数作为值value result_dict[num] = count # 找出字典中最大的值,这个值就是出现的最高次数 h_count = max(result_dict.values()) # 通过次数,找到次数对应的值 for item in result_dict.items(): # item键值对的小元组 value = item[1] if value == h_count: key = item[0] print('出现次数最多的数字为:%s ,次数为:%s'%(key, value)) # [{'name':'张三','age':22,'phone':110},{'name':'张三','age':22,'phone':110},{'name':'张三','age':22,'phone':110},{'name':'张三','age':22,'phone':110},{'name':'张三','age':22,'phone':110},{'name':'张三','age':22,'phone':110}]