字典(dict)的特点:
1、如何创建字典?
info = {'k1':'v1','k2':'v2'}
#'k1':'v1'称为“键值对”
2、键值对中的value可以是任何类型
3、键值对中的key可以是数字、字符串、布尔值(注意用布尔值作key时可能和名为1或0的其他key重复)、元组;但是key不可以是列表(因为列表可以被修改)、字典
4、字典是无序的
5、补充:当key的值重复的时候,只能保留一个
info = {1:123,True:456,'alex':'apple'}
print(info) #{1: 456, 'alex': 'apple'}
#因为True是在内存里是1,False是0,所以info中有两个元素的key值重复了,print的时候只能显示一个
【索引:查找指定元素】
info = {'k1':18,'k2':True}
v = info['k1']
print(v) #18
【切片】
注意:不能通过切片的方式查找字典中的元素,因为字典是无序的
【del 删除】
info = {'k1':18,'k2':True}
del info['k1']
print(info) #{'k2': True}
【for循环:默认输出的时候只有key】
example1:
info = {'k1':18,'k2':True}
for item in info:
print(item)
#k1
#k2
example2:
info = {'k1':18,'k2':True}
for item in info.keys():
print(item)
#k1
#k2
example3:
info = {'k1':18,'k2':True}
for item in info.values():
print(item)
#18
#True
example4:
info = {'k1':18,'k2':True}
for item in info.keys():
print(item,info[item])
#k1 18
#k2 True
---------------同样功能---------------
info = {'k1':18,'k2':True}
for k,v in info.items(): #把key赋值给k,把value赋值给v
print(k,v)
#k1 18
#k2 True
---------------类似功能---------------
info = {'k1':18,'k2':True}
for item in info.items():
print(item)
#('k1', 18)
#('k2', True)
【clear()清除】
【copy浅拷贝】
【fromkeys() ----是一种静态方法】
使用的时候直接用:类名+方法
example1:
v = dict.fromkeys(['k1',123,'999']) #字符串、元组、列表都可以(可以用来循环)
print(v) #{'k1': None, 123: None, '999': None}
example2:根据序列创建字典,并指定统一的值
v = dict.fromkeys(['k1',123,'999'],123)
print(v) #{'k1': 123, 123: 123, '999': 123}
【dic】
dic = {'k1':'v1'}
v = dic['k1']
print(v) #v1
#如果没有一个key叫k1的话,就会报错
【get()】
-----------------------key值存在-----------------------
dic = {'k1':'v1'}
v = dic.get('k1')
print(v) #v1
-----------------------key值不存在-----------------------
#若传入的key值不存在,则返回None,而不会像dic[]一样报错
dic = {'k1':'v1'}
v = dic.get('k1111')
print(v) #None
-----------------------用第二个参数指定返回值-----------------------
#如果key为k1111的键值对存在,则返回此键值对中value的值;若不存在,则返回11111
dic = {'k1':'v1'}
v = dic.get('k1111',11111)
print(v) #11111
【pop()】
---------------key存在时---------------
dic = {'k1':'v1','k2':'v2'}
v = dic.pop('k1')
print(dic,v) #{'k2': 'v2'} v1
---------------key不存在时---------------
dic = {'k1':'v1','k2':'v2'}
v = dic.pop('k1111',1111)
print(dic,v) #{'k1': 'v1', 'k2': 'v2'} 1111
【popitem() 指定某一个key删除】
dic = {'k1': 'v1', 'k2': 'v2'}
v = dic.popitem()
print(dic,v) #{'k1': 'v1'} ('k2', 'v2')随机删除一个
-------------------这样写也可以-------------------
dic = {'k1': 'v1', 'k2': 'v2'}
k,v = dic.popitem()
print(dic,k,v) #{'k1': 'v1'} k2 v2
【setdefault()】
--------------key存在--------------
dic = {'k1':'v1','k2':'v2'}
v = dic.setdefault('k1','123')
print(dic,v) #{'k1': 'v1', 'k2': 'v2'} v1
#如果key存在,则不修改原来的字典,并且返回传入的key当前所对应的value
--------------key不存在--------------
dic = {'k1':'v1','k2':'v2'}
v = dic.setdefault('k1111','123')
print(dic,v) #{'k1': 'v1', 'k2': 'v2', 'k1111': '123'} 123
#如果key不存在,则在原来的字典中加入键值对
【update() 更新】
写法1:
dic = {'k1':'v1','k2':'v2'}
dic.update({'k1':'1111','k2':123})
print(dic) #{'k1': '1111', 'k2': 123}
写法2:
dic = {'k1':'v1','k2':'v2'}
dic.update(k1=123,k3=345,k5='apple')
print(dic) #{'k1': 123, 'k2': 'v2', 'k3': 345, 'k5': 'apple'}
-------------------重点方法-------------------
keys()
values()
items()
get()
update()