一、什么是字典?

#字典的使用
#子字典是一个容器类,可以用来存储数据
#列表存储数据特点:1、有序的 2、每一个都有一个索引,通过索引可以对数据进行查询,修改,删除

#字典存储数据: key:value(键值对)
#key 必须是唯一不可变的,一般使用字符串作为字典中的key,也可使用数字等不可变类型的值。如果有多个相同key的情况,保留最后一个key对应的值
#字典中存储的数据是没有顺序的
dict_1 = {'name':'zhangsan','age':22,'phone':110,'sex':'男'}
二、字典取值方法

#1.根据key取出字典中的值
# name = dict_1['name']
# print(name)
#2.get(key,default)函数 获取字典中对应key值,如果key不存在,取默认值。若存在,取出对应结果
name = dict_1.get('name','0')
print(name)

#1. 获取字典中所有的key
keys = dict_1.keys()
#获取keys类型
# print(type(keys))
#取出所有的keys
for key in keys:
    #根据key取出对应的值
    value = dict_1[key]
    print('%s:%s'%(key,value))
#2.获取字典中所有的value
values = dict_1.values()
#for循环取出所有的value
for value in values:
    print(value)
#3.获取字典中所有的键值对
#items不可变,可作为key值
items = dict_1.items()
# [('sex', '男'), ('phone', 110)]
#for 循环遍历items
for item in items:
    #从元组中根据索引来取出数据
    key = item[0]
    value = item[1]
    print('键:%s 值:%s'%(key ,value))

三、向字典中添加数据

#向字典中添加数据
#如果key不存在,就添加数据。如果存在就修改key对应的值
dict_1['sss'] = '4s'
print(dict_1)
四、删除字典中数据

#1.根据key删除字典中的数据
del dict_1['sss']
print(dict_1)
#2.pop(key)  key是必要参数,要移出数据对应的key
s = dict_1.pop('name')
print(s)
#3.popitem() 随机从字典中取出一个键值对,并且将键值放在元组中  如:('phone',110)
s = dict_1.popitem()
print(s)
#4.删除字典中所有的键值对
# dict_1.clear()
# print(dict_1)
五、小例子

要求如下:

生成一个列表,存放100个随机整数,找出出现次数最多的数字(可能不止一个)
代码如下:
#老师的程序
import random
#列表推导式、生成式
numbers  = [random.randint(0,100) for x in range(100)]
#[最终放在列表中的数据  for 循环
# number2 = [x for x in range(100)]
result_dict = {}
for num in numbers:
    #获取数字在字典中出现的次数
    count = numbers.count(num)
    #把数字作为key,出现的次数作为value
    result_dict[num] = count
# print(result_dict)
#找出字典中最大的值 这个值就是最高次数
h_count = max(result_dict.values())
# print(h_count)
for item in result_dict.items():
    #item 键值对的小元组
    value =item[1]
    if value == h_count:
        key = item[0]
        print('出现次数最多的数字为:%s,次数为:%s'%(key,value))
#我的程序
list_2 = []
dict_2 = {}
import random
i = 100
while i:
    num = random.randint(0,100)
    list_2.append(num)
    i -= 1
for x in range(0,len(list_2)):
    num = list_2[x]
    counts = list_2.count(num)
    dict_2[num] = counts
count = max(dict_2.values())
for item in dict_2.items():
    value = item[1]
    if value == count:
        key = item[0]
        print('数字:%s 次数:%s'%(key,value))



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐