一、字典的定义:
无序的,可变的键值对集合,可变即存储任意类型的对象。
二、字典的定义形式:
d={ key1 : value1,key2 : value2,key3 : value3}
注意:
1、键(key)是唯一的,不可变的,而值(value)不是唯一的,而且可取任何数据类型
2、一个key+一个对应的value是一个item
3、不要以dict作为变量名,因为dict是一个内置函数,容易引发错误
4、字典的长度同字符串的长度求法:len(x)
三、创建空字典
1、使用大括号创建
emptydict={}
print(emptydict)
2、使用内置函数创建
emptydict=dict()
print(emptydict)
四、访问字典
1、通过键进行访问:
infor={'name':'lily','age':18,'sex':'girl'}
print(infor['name'])
infor={'name':'lily','age':18,'sex':'girl','name':'mary'}
print(infor['name']) #输出mary,前面一个被后面那个代替,每一个键值对都是唯一的
输出部分:
2、get获取单个值
#get(获取单个值)
infor={'name':'lily','age':18,'sex':'girl'}
v=infor.get("age")#如果用了没有的键值对,会打印NONE,不会报错
print(v)#18
3、获取全部值:以元组的形式返回
#获取所有的值
#dic.values()
p={"zimu":"a","number":3}
print(p.values())#查找出p集合中对应key的值
print(p.keys())
print(p.items())
输出部分:
五、字典的增删改查
1、增
infor['height']=100
print(infor) #{'name': 'mary', 'age': 18, 'sex': 'girl', 'height': 100}
2、改
改值,不可改键
#只能改值,不能改key修改单个
infor['sex']='boy'
print(infor)
#输出{'name': 'mary', 'age': 18, 'sex': 'boy', 'height': 100}
也可用update进行更新:
#如果旧字典没有,就新增key
c={"zimu":"a","number":3}
c.update({"hanzi":"wuyu"})
print(c)#打印{'zimu': 'a', 'number': 3, 'hanzi': 'wuyu'}
c.update({"zimu":"b"})
print(c)#打印{'zimu': 'b', 'number': 3, 'hanzi': 'wuyu'},将原来的a改成了b
3、删
clear() #(清空整个字典)
del infor['name'] #删除指定的,键值对和值都会一起被删除
#dic.pop(key[,default])
#删除指定的键值对,并返回对应的值
#如果key不存在,就直接返回给定的default 值
d={"zimu":"a","number":3}
v=d.pop("zimu")
print(v,d)#打印:a {'number': 3}
#popitem()
#删除按升序排序后的第一个键值对,并以元组的形式返回该键值对,看key
#若字典为空,则会报错
t={"zimu":"a","number":3}
result=t.popitem()
print(t,result)#打印:{'zimu': 'a'} ('number', 3)(这是删除的)
删除后会返回删除的
4、查:即访问字典
六、字典的遍布(注释部分为输出),infor为字典名称
#获取键值对
#直接遍历
for key in infor.keys():#找键------keys
print(key)
'''
name
age
sex
height
'''
for value in infor.values():#找值------value
print(value)
'''
mary
18
boy
100
'''
for key,value in infor.items():#找键值对 key,value items 打印出对应的
print("key=%s,value=%s"%(key,value))
'''
key=name,value=mary
key=age,value=18
key=sex,value=boy
key=height,value=100
'''
for item in infor.items():#找元素 items 所有的
print(item)
'''
('name', 'mary')
('age', 18)
('sex', 'boy')
('height', 100)
'''
七、字典的小应用:利用字典统计字符个数
n=input()
n=list(n)
count={} #字典的定义
s=0
#统计字符数的通用操作,计数,循环计数
for i in n:
if i in count:
count[i]+=1
else:
count[i]=1
print(count)
#分类函数,默认升序,reverse=true 为降序 false 为升序
count=sorted(count.items(),reverse=True)
#转换为字典类型
count=dict(count)